• Added knitr engine rtex (see vignette “Chunk engine for easy tex output in Rmarkdown and Quarto”)
  • New functions: as_expr.caracas_solve_sys_sol
  • inv() by default uses gauss like SymPy
  • kronecker(), rep() added
  • solve() now dispatches on caracas_symbols and works like solve_lin()
  • scale_matrix() can construct matrix-scalar products for prettier output
  • print(..., method = "compactascii") as prettyascii except more compact matrices by removing empty rows
  • More compact solve_sys() result printing when there is only one unknown
  • New functions, e.g.: as_vec(), trace_()
  • Initialisation of SymPy/Python is now done at package at start up. This may move the waiting time from first time using the SymPy backend to loading the package. This was done to satisfy CRAN checks.
  • Minor bug fixes
  • Reworked subs() - see documentation. subs_lst() removed.
  • Reworked output format (utf8, prettyascii or ascii) to one argument and one option, i.e.  options(caracas.print.method = 'prettyascii') and print(x, method = "prettyascii") (default is utf8)
  • New function: as_func()
  • dim()<- assignment for caracas matrices
  • sympy_func(x, fun) first tries calling fun on x; and if it does not exist it tries from the global namespace
  • New function: mat_pow() for raising a matrix to a power (not component-wise), requires SymPy >= 1.6
  • New function: expand_func() added
  • Added rev() for caracas_symbol’s
  • Bug with Ops (functions) fixed
  • SymPy 1.9 bug with elementwise matrix multiplication (https://github.com/sympy/sympy/issues/22353) addressed
  • Enabling pretty ASCII print option (options(caracas.print.prettyascii = TRUE)) instead of UTF-8, if the system locale is not UTF-8; this be disabled with options(caracas.print.prettyascii = FALSE)
  • Journal of Open Source Software submission
  • Require Python 3
  • An entire new interface for using SymPy, including symbols, symbolic matrices, solving equations, limits and lots of other functionality.
  • Initial release