Releases: rparini/cxroots
Releases · rparini/cxroots
v3.2.0
v3.1.0
v3.0.2
- Adds compatibility with numpy v2 by replacing deprecated types (thanks @MartinCapraro)
v3.0.1
v3.0.0
- Requires Python >= 3.10
- Removed
df_approx_orderparameter - Removed
cx_derivativefunction - Removed
find_multiplicityfunction - Removed dependency on numdifftools
- Removed upper bound on required numpy version
- Removed
util.integrate_quad_complexand usescipy.integrate.quad'scomplex_funcargument instead - Renamed
NumberOfRootsChangedtoNumberOfRootsChangedError - 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_complexfunction - 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
verboseargument has been removed from some functions. It still exists for theContour.rootsmethod andfind_rootsfunction but it will now create a progress bar, using rich, rather than printing debugging information to the console. - Remove unused
Contour.randomPointmethod - All
camelCasefunctions and arguments changed to besnake_case margument renamed todf_approx_order- Renames
attempt_bestargument torefine_roots_beyond_tol - Removed
return_animationargument fromdemo_find_rootsfunction andContour.demo_rootsmethod. Instead, thedemo_roots_animationfunction orContour.demo_roots_animationmethod can be used to get aanimation.FuncAnimationobject that would animate the rootfinding process without displaying it. - Renames
RootResult.original_contourattribute toRootResult.contour - The
Contour._size_plotmethod was renamed toContour.size_plotand given a docstring - Removed
Contour.approximate_rootsmethod as it is intended for users to callContour.rootsinstead - The
count_roots,find_rootsanddemo_find_rootsare 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.quadare 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.quadandscipy.integrate.romberg - Fixed issue with
newtoniteration method whenrefine_roots_beyond_tolwas True and the routine would not exit if the error of the previous and current iterations were only equal - The
callbackfor themulleriteration method will now correctly be passed the value of the evaluated function for the iteration, rather than the error. - Fixed description of
root_tolandrefine_roots_beyond_toliniterate_to_rootdocstring - Changes default
root_tolto 0 forsecant,newtonandmullerfunctions - Changes starting points for muller's method used when root refining to be complex, to guard against the iterations keeping to the real line.