Movatterモバイル変換


[0]ホーム

URL:


Type:Package
Title:Interface to 'Maxima', Enabling Symbolic Computation
Version:0.8.1
Date:2025-07-18
Description:An interface to the powerful and fairly complete computer algebra system 'Maxima'. It can be used to start and control 'Maxima' from within R by entering 'Maxima' commands. Results from 'Maxima' can be parsed and evaluated in R. It facilitates outputting results from 'Maxima' in 'LaTeX' and 'MathML'. 2D and 3D plots can be displayed directly. This package also registers a 'knitr'-engine enabling 'Maxima' code chunks to be written in 'RMarkdown' documents.
URL:https://rcst.github.io/rim/
BugReports:https://github.com/rcst/rim/issues
SystemRequirements:Maxima (https://sourceforge.net/projects/maxima/,tested with versions 5.42.0 - 5.46.0), needs to be on PATH
License:GPL (≥ 3)
Imports:methods, Rcpp, R6, knitr, GlobalOptions
LinkingTo:Rcpp
RoxygenNote:7.3.2
Suggests:testthat (≥ 3.0.0), rmarkdown
Config/testthat/edition:3
Encoding:UTF-8
NeedsCompilation:yes
Packaged:2025-07-18 13:24:50 UTC; eric
Author:Eric Stemmler [aut, cre], Kseniia Shumelchyk [aut], Hans W. Borchers [aut]
Maintainer:Eric Stemmler <stemmler.eric@gmail.com>
Repository:CRAN
Date/Publication:2025-07-18 15:20:08 UTC

rim

Description

Provides an interface to Maxima, a computer algebra system.

Usage

maxima.start(restart = FALSE)maxima.stop(engine = FALSE)maxima.get(command)maxima.load(module)maxima.apropos(keystring)maxima.version()maxima.isInstalled()iprint(x)## S3 method for class 'maxima'print(x, ...)maxima.eval(x, code = FALSE, envir = globalenv())

Arguments

restart

if FALSE (default), then Maxima is started provided it is not running already. If TRUE starts or restarts Maxima.

engine

if FALSE (default), quits the (running) maxima instance and closes the connection, otherwise quits and closes the (running) maxima instance used for the knitr engine.

command

character string containing the Maxima command.

module

character vector naming the Maxima module (typically a *.mac or *.lisp file) to be loaded.

keystring

character vector containing a search term.

x

Either a character vector of length 1L or an S3 object of class "maxima"

...

other arguments (ignored).

code

A logical vector of length 1L, whether to attach the original expression (TRUE) or not (FALSE, default)

envir

A environment object.globalenv() (default), is passed to eval().

Details

Note: You need to install the Maxima software separately in order to make use of this package.

Maxima is set up automatically on attachment vialibrary(rim) and automatically started when a command is send (if it isn't running already) usingmaxima.get(). If environment variable RIM_MAXIMA_PATH is not set, rim will search for the Maxima executable, or use the former otherwise. Usingmaxima.start() andmaxima.stop(), one can stop and (re-)start the current Maxima session if needed, e.g. to clear Maxima command and output history.

To send a single command to Maxima and receive the corresponding output usemaxima.get(). This function returns a S3 object of class "maxima". The output is printed by printing the object and will be printed in a format currently set bymaxima.options(format). The output format can be changed by setting it, e.g.maxima.options(format = "ascii"). Output labels are printed according to optionmaxima.options(label).

Value

invisibly returns NULL.

Character vector of length 1 of the input command. Depending on whether option "label" is set to TRUE, the corresponding input reference label is printed preceding the input command.

The evaluated R-object

Functions

Author(s)

Maintainer: Eric Stemmlerstemmler.eric@gmail.com

Authors:

See Also

Useful links:

maxima.engine,maxima.options

Examples

if(maxima.isInstalled()) maxima.start(restart = TRUE)if(maxima.isInstalled()) {  maxima.start(restart = TRUE)  maxima.stop()}if(maxima.isInstalled()) maxima.get("2+2;")if(maxima.isInstalled()) maxima.load("ratpow")if(maxima.isInstalled()) maxima.apropos("integrate")maxima.version()maxima.isInstalled()if(maxima.isInstalled()) {  a <- maxima.get("2+2;")  iprint(a)}if(maxima.isInstalled()) {  a <- maxima.get("2+2;")  print(a)}if(maxima.isInstalled()) {  a <- maxima.get("2+2;")  maxima.eval(a)  # same  maxima.eval("2+2;")  # evaluate with data.frame  df <- data.frame(x = seq(0, 1, by = 0.1))  maxima.eval("integrate(1 / (1 + x^4), x);", code = TRUE, envir = df)  maxima.stop()}

knitr maxima engine

Description

Functions to process Maxima code chunks byknitr.

Usage

maxima.engine(options)maxima.inline(command)

Arguments

options

namedlist ofknitr options. Supported options areecho,eval,include andoutput.var. To change the output format of the Maxima engine set the optionmaxima.options(engine.format) to either"linear" (default),"ascii","latex" or"mathml".

command

character string containing the Maxima command to be executed.

Details

Upon attachment, i.e.library(rim) functionmaxima.engine is registered as aknitr engine. Thus,maxima.engine() is called byknit() to evaluate Maxima code chunks. When called upon the first code chunk of a document it starts Maxima in a separate process in server mode. This means that a single Maxima session is used for all Maxima code chunks of anRMarkdown document. Inputs and outputs can thus be used across chunks (e.g. by using Maxima reference labels).maxima.options(engine.format = ..., engine.label = ...) configures the output format and whether or not output reference labels should be printed.

The purpose ofmaxima.inline is to insert Maxima results as inline text, i.e. on the same line of the preceding text, if it is actually written on the same line of theRMarkdown file. It uses the same running Maxima process asmaxima.engine. The output format for inline results can be configured separately from the settings ofmaxima.engine, i.e.maxima.options(inline.format = ..., inline.label = ...).

Value

This functions prints the resulting output from maxima together with it's cod

character string containing the maxima result printed according options set bymaxima.options(inline.format = ..., inline.label = ...).

Functions

Examples

if (maxima.isInstalled()) {  maxima.inline("2+2;")  maxima.stop(engine = TRUE)}

maxima.options

Description

Function for globally setting and retrieving options.

Usage

maxima.options(  ...,  RESET = FALSE,  READ.ONLY = NULL,  LOCAL = FALSE,  ADD = FALSE)

Arguments

...

options to be accessed by usingname = value. Options can be added by settingADD = TRUE, but only those mentioned below will be used my rim.

RESET

logical of length 1, whether to reset all options to default values.

READ.ONLY

logical of length 1, can be used to output all options that are read-only.

LOCAL

logical of length 1, to output all options that are defined locally.

ADD

logical of length 1, whether to add the specified option in... (TRUE), default is FALSE.

Details

format:

character vector of length 1 setting the output format formaxima.get() andmaxima.repl(). Can be one of"linear","ascii","latex" or"mathml".

engine.format:

same as optionformat, but for outputs inRMarkdown documents.

inline.format:

character string setting the output format formaxima.inline(), for knitting outputs inline intoRMarkdown documents. Can be one of"linear","latex" or"mathml", butnot"ascii".

label:

logical of length 1, whether reference labels should be printed for returned S3 objects frommaxima.get() andmaxima.repl() (TRUE, default), or not (FALSE). This also applies to printing of input commands usingiprint().

engine.label:

same aslabel, but for outputs inRMarkdown documents.

inline.label:

same aslabel, but for inline outputs inRMarkdown documents.

Examples

maxima.options(format = "latex")maxima.options(label = FALSE)maxima.options(label = TRUE, format = "ascii")# reset to defaultmaxima.options(label = TRUE, format = "linear")

Run a Maxima REPL

Description

This function provides a Maxima REPL in theR session, which can be used to interactively run Maxima code. All code executed within the REPL isrun within the interactive Maxima session that is started when rim is attached and any generated Maxima objects will persist in the Maximasession after the REPL is detached.

Usage

maxima.repl(history_filename = NA_character_)

Arguments

history_filename

A (optional) filename to which all Maxima commandsduring the repl session are saved. If not provided (default), command historylookup will still be available (if supported by OS) in the same way as in theR session.

Details

When working with R and Maxima scripts interactively, one can activatethe Python REPL with 'maxima.repl()', run Maxima code, and later run 'exit;'to return to theR console.

Note that, inside the REPL, multiple commands are allowed.

The output format displayed inside the REPL is controlled by 'maxima.options(repl.format = ...)'.


rim_global

Description

Returns knitr::knit_global() unless this returs the GlobalEnv() in which case it returns maxima.env, rim's internal environment.Main purpose is to prevent 'knitr::knit_global()' from returning 'globalenv()'.

Usage

rim_global()

Value

An environment, either the result of knitr::knit_global or maxima.env


[8]ページ先頭

©2009-2025 Movatter.jp