Skip to content

SymEngine 0.4.0

Compare
Choose a tag to compare
@certik certik released this 28 Mar 19:35
· 965 commits to master since this release

New Functionality

  • New parser based on bison and flex
  • Initial support to generate symengine code for a matchpy expression
  • Supporting symbols in evalf
  • Reduced row echelon form
  • count_ops to count operations of an expression
  • Latex and MathML printing
  • Saving and loading LLVM compiled functions
  • Common subexpression elimination
  • xeus-cling and binder support
  • xreplace method
  • New functions dense_matrix_row_del, dense_matrix_col_del in C Wrappers and row_insert and col_insert in class DenseMatrix- #1313
  • expand_as_exp() member function is removed from derived classes of TrigFunction and HyperbolicFunction and implemented using visitor design pattern - #1309
  • as_real_imag- #1310
  • Polynomial Solvers - #1296
  • Floor and Ceiling classes - #1297 and #1290
  • Conjugate class - #1295
  • ConditionSet - #1291
  • Sign class - #1287
  • Vector-specific methods dot and cross - #1286
  • Dummy class - #1284
  • Relationals - #1276, #1279, #1280
  • Flint wrappers for factorization - #1274
  • New functions dense_matrix_row_join, dense_matrix_col_join in C Wrappers - #1273
  • Functions column_exchange_dense, row_join, col_join, row_del and col_del in class DenseMatrix - #1269
  • New functions vecbasic_set, vecbasic_erase, setbasic_erase in CWrappers - #1264, #1272
  • New functions number_is_zero, number_is_positive, number_is_negative, number_is_complex in CWrappers - #1256

Breaking Changes

  • SONAME updated to 0.4 (SONAME will pin to . for major version 0.)
  • complex_*real_part, complex_*imaginary_part are replaced by methods complex_base_real_part and complex_base_imaginary_part - #1263
  • real_mpfr_is_zero, complex_mpc_is_zero is replaced by method number_is_zero - #1256
  • basic_number_sign is replaced by methods number_is_zero, number_is_positive, number_is_negative - #1256

Bug Fixes

  • Additional comparison clause in Dummy::compare - #1304
  • Add oo and zoo to the parser - #1261
  • Fix segmentation fault in LLVMDoubleVisitor - #1260
  • NaN and infs in JuliaStrPrinter - #1258
  • The base classes for inverse trigonometric and inverse hyperbolic functions are now InverseTrigFunction and InverseHyperbolicFunction respectively. Base class for TrigFunction and InverseTrigFunction is TrigBase. Similarly, base class for HyperbolicFunction and InverseHyperbolicFunction is HyperbolicBase. #1309

And many other changes, here is a list of merged PRs not mentioned above:

People who contributed to the release:

  • Srajan Garg
  • Dirk Reusch
  • Ranjith Kumar
  • Isuru Fernando
  • Jean-Paul Pelteret
  • Shikhar Jaiswal
  • Sumith Kulal
  • Ondřej Čertík
  • Jialin Ma
  • Gerrit Ansmann
  • Björn Dahlgren
  • Nilay Pochhi
  • Eeshan Gupta
  • Ziyi Yan
  • Andreas Humenberger
  • Kieran Kaempen
  • Clouds Flowing
  • Sylvain Corlay
  • Alan Hu
  • Rajiv Ranjan Singh
  • Francesco Bonazzi
  • Simon Stelter