library(iomath)

Output

Conversion to tex

\[ \left( \left( 2 \sin \left( x + 2\right) \right) ^{2} + \left( a + b\right) ^{2}\right) ^{3} \]

All as hard brackets:

\[ \left[ \left[ 2 \sin \left[ x + 2\right] \right] ^{2} + \left[ a + b\right] ^{2}\right] ^{3} \]

Customised bracketing:

\[ \left\{ \left[ 2 \sin \left( x + 2 \right) \right] ^{2} + \left[ a + b \right] ^{2} \right\} ^{3} \]

An argument specifying brackets can be given (recycled):

\[ \left\langle \left\{ 2 \sin \left\langle x + 2 \right\rangle \right\} ^{2} + \left\{ a + b \right\} ^{2} \right\rangle ^{3} \]

Input

Assumptions

  • Variables are single letters: a-z, A-Z (e.g. \(x\), \(y\), \(a\), \(b\))
    • This has been done to better interpret user-input such as 2x to mean 2*x

Safe evaluation

By default, safe evaluation inserts inner products.

safe_eval("2.2", vars = NULL)
#> [1] 2.2
safe_eval("2.2x^2", vars = list(x = 0.2))
#> [1] 0.088
safe_eval("2.2*x^2", vars = list(x = 0.2))
#> [1] 0.088
safe_eval("2,2*x^2", vars = list(x = 0.2))
#> [1] 0.088

Efterything after first ; is ignored:

safe_eval("1; 2; 3")
#> [1] 1