caracas
is available on CRAN and can be installed as usual:
Please ensure that you have SymPy installed, or else install it:
if (!caracas::has_sympy()) {
caracas::install_sympy()
}
To build and install from Github with vignettes run this command from within R
(please install remotes
first if not already installed):
You can also install the package without vignettes if needed as follows:
The caracas
package uses the reticulate
package (to run Python code). Thus, if you wish to configure your Python environment, you need to 1) load reticulate
, 2) configure the Python environment, and 3) load caracas
. The Python environment can be configured as described here. Again, this need to be done before loading caracas
.
Reference card available at https://raw.githubusercontent.com/r-cas/caracas/master/refcard/caracas_refcard.pdf.
The name “caracas” is intended to mean “(inter)face to computer algebra system(s)” - notice that “cara” is Spanish (Castellano to be precise) for “face”.
Please note that the caracas
project is released with a Contributor Code of Conduct (available in CODE_OF_CONDUCT.md
). By contributing to this project, you agree to abide by its terms.
x <- symbol('x')
eq <- 2*x^2 - x
eq
#> c: 2
#> 2⋅x - x
as.character(eq)
#> [1] "2*x^2 - x"
as_expr(eq)
#> expression(2 * x^2 - x)
tex(eq)
#> [1] "2 x^{2} - x"
A <- matrix(c("x", 2, 0, "2*x"), 2, 2)
B <- as_sym(A)
B
#> c: ⎡x 0 ⎤
#> ⎢ ⎥
#> ⎣2 2⋅x⎦
Binv <- inv(B)
Binv
#> c: ⎡ 1 ⎤
#> ⎢ ─ 0 ⎥
#> ⎢ x ⎥
#> ⎢ ⎥
#> ⎢-1 1 ⎥
#> ⎢─── ───⎥
#> ⎢ 2 2⋅x⎥
#> ⎣ x ⎦
tex(Binv)
#> [1] "\\left[\\begin{matrix}\\frac{1}{x} & 0\\\\- \\frac{1}{x^{2}} & \\frac{1}{2 x}\\end{matrix}\\right]"
eigenval(Binv)
#> [[1]]
#> [[1]]$eigval
#> c: 1
#> ─
#> x
#>
#> [[1]]$eigmult
#> [1] 1
#>
#>
#> [[2]]
#> [[2]]$eigval
#> c: 1
#> ───
#> 2⋅x
#>
#> [[2]]$eigmult
#> [1] 1
Please find more examples in the other vignettes available at https://r-cas.github.io/caracas/.
Please use the issue tracker at https://github.com/r-cas/caracas/issues if you want to notify us of an issue or need support. If you want to contribute, please either create an issue or make a pull request.