Releases: rparini/cxroots
Releases · rparini/cxroots
v3.0.2
v3.0.1
v3.0.0
- Requires Python >= 3.10
- Removed
df_approx_order
parameter - Removed
cx_derivative
function - Removed
find_multiplicity
function - Removed dependency on numdifftools
- Removed upper bound on required numpy version
- Removed
util.integrate_quad_complex
and usescipy.integrate.quad
'scomplex_func
argument instead - Renamed
NumberOfRootsChanged
toNumberOfRootsChangedError
- Switch to ruff formatting/linting
v2.1.0
v2.0.1
- Record in setup.py that only numpy < 1.25 will work with cxroots currently (#285)
- Fix type annotation for
util.integrate_quad_complex
function - Add more debug logging for root counting
- Adjust root counting error advice to include chaning integration method
- Fix type issue in contour.call by hard coding array dtype
v2.0.0
Breaking changes
- Drop support for Python 2. Cxroots now requires python 3.8 or later
- The
verbose
argument has been removed from some functions. It still exists for theContour.roots
method andfind_roots
function but it will now create a progress bar, using rich, rather than printing debugging information to the console. - Remove unused
Contour.randomPoint
method - All
camelCase
functions and arguments changed to besnake_case
m
argument renamed todf_approx_order
- Renames
attempt_best
argument torefine_roots_beyond_tol
- Removed
return_animation
argument fromdemo_find_roots
function andContour.demo_roots
method. Instead, thedemo_roots_animation
function orContour.demo_roots_animation
method can be used to get aanimation.FuncAnimation
object that would animate the rootfinding process without displaying it. - Renames
RootResult.original_contour
attribute toRootResult.contour
- The
Contour._size_plot
method was renamed toContour.size_plot
and given a docstring - Removed
Contour.approximate_roots
method as it is intended for users to callContour.roots
instead - The
count_roots
,find_roots
anddemo_find_roots
are no longer exposed directly by importing cxroots. Instead, it is intended that the contour method is used instead. For example, useCircle(0,3).find_roots(f)
instead offind_roots(Circle(0,3),f)
New features
- cxroots now logs rootfinding progress which can be accessed using the standard library's logging module. See the documentation for examples.
- Add
cxroots[plot]
install option that will install dependencies for plotting contours and roots - Added type annotations for all public interfaces
Minor changes and fixes
- Use Black formatting and added pre-commit hook
- Contour arrows to are now scale-independent (#153, thanks @llohse)
- Renamed internal files to camel_case.py
- Warnings from
scipy.integrate.quad
are no longer suppressed by cxroots while calculating the bilinear product - Changed default absolute and relative integration tolernaces to 1.49e-08 to match scipy's defaults for
scipy.integrate.quad
andscipy.integrate.romberg
- Fixed issue with
newton
iteration method whenrefine_roots_beyond_tol
was True and the routine would not exit if the error of the previous and current iterations were only equal - The
callback
for themuller
iteration method will now correctly be passed the value of the evaluated function for the iteration, rather than the error. - Fixed description of
root_tol
andrefine_roots_beyond_tol
initerate_to_root
docstring - Changes default
root_tol
to 0 forsecant
,newton
andmuller
functions - Changes starting points for muller's method used when root refining to be complex, to guard against the iterations keeping to the real line.