Skip to content

Releases: rparini/cxroots

v3.0.2

27 Jul 20:55
Compare
Choose a tag to compare
  • Adds compatibility with numpy v2 by replacing deprecated types (thanks @MartinCapraro)

v3.0.1

23 Jul 20:57
afe3055
Compare
Choose a tag to compare
  • Temporarily require numpy<2

v3.0.0

23 Jul 20:42
385e46d
Compare
Choose a tag to compare
  • 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 use scipy.integrate.quad's complex_func argument instead
  • Renamed NumberOfRootsChanged to NumberOfRootsChangedError
  • Switch to ruff formatting/linting

v2.1.0

27 Dec 16:59
5c29411
Compare
Choose a tag to compare
  • Improved reliability by subdividing contours that produce invalid approximations for multiplicites, rather than ignoring the individual invalid approximations.

v2.0.1

29 Aug 08:33
a81ea95
Compare
Choose a tag to compare
  • 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

20 Aug 21:43
Compare
Choose a tag to compare

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 the Contour.roots method and find_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 be snake_case
  • m argument renamed to df_approx_order
  • Renames attempt_best argument to refine_roots_beyond_tol
  • Removed return_animation argument from demo_find_roots function and Contour.demo_roots method. Instead, the demo_roots_animation function or Contour.demo_roots_animation method can be used to get a animation.FuncAnimation object that would animate the rootfinding process without displaying it.
  • Renames RootResult.original_contour attribute to RootResult.contour
  • The Contour._size_plot method was renamed to Contour.size_plot and given a docstring
  • Removed Contour.approximate_roots method as it is intended for users to call Contour.roots instead
  • The count_roots, find_roots and demo_find_roots are no longer exposed directly by importing cxroots. Instead, it is intended that the contour method is used instead. For example, use Circle(0,3).find_roots(f) instead of find_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 and scipy.integrate.romberg
  • Fixed issue with newton iteration method when refine_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 the muller 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 and refine_roots_beyond_tol in iterate_to_root docstring
  • Changes default root_tol to 0 for secant, newton and muller 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.

v1.1.11

22 Dec 15:16
cb6306c
Compare
Choose a tag to compare
  • Fixed error when using romb integration method when supplied with a derivative function that returns a constant value

v1.1.10

22 Jul 19:03
Compare
Choose a tag to compare
  • Replaced docrep with numpydoc

v1.1.9

01 Mar 18:16
de12cb6
Compare
Choose a tag to compare
  • Fix depreciation warning from scipy

v1.1.8

20 Apr 10:40
ba06aab
Compare
Choose a tag to compare
  • Fix NotImplementedError in Contour base (#31 thanks @fchapoton)
  • Added __call__ placeholder to ComplexPath