Overview - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


C OpenMaple and ExternalCalling Application Program Interface (API)

 

Description

OpenMaple-specific Functions

Conversion from Maple Objects

Conversion to Maple Objects

Data Queries

Rectangular Table (Vector, Matrix, Array) Manipulation

List and Table Manipulation

Output

Assignment and Selection Functions

Memory and Foreign Object Management

System and Maple Properties

Evaluation and Error Handling

Description

• 

All functions can be used in external code with OpenMaple and define_external (except OpenMaple-specific functions, which can be used only with OpenMaple).

• 

These functions can only be called from threads created within Maple or when using OpenMaple, the thread which called StartMaple. Calling these routines from other threads is unsupported and may cause instability.  See the multithreaded page for more information.

OpenMaple-specific Functions

  

The following is a list of functions that can only be used as part of OpenMaple. These include functions for starting, restarting, and stopping a Maple session as well as functions for controlling standard input and output.

callBackCallBack

errorCallBack

queryInterrupt

readLineCallBack

redirectCallBack

RestartMaple

StartMaple

statusCallBack

StopMaple

streamCallBack

textCallBack

 

Conversion from Maple Objects

  

The following is a list of functions that can be used to convert a Maple object to a native C data structure.

MapleToComplexFloat32

MapleToComplexFloat64

MapleToComplexFloatDAG

MapleToFloat32

MapleToFloat64

MapleToGMPInteger

MapleToInteger16

MapleToInteger32

MapleToInteger64

MapleToInteger8

MapleToM_BOOL

MapleToM_INT

MapleToPointer

MapleToString

 

 

Conversion to Maple Objects

  

The following is a list of functions that can be used to convert a native C data structure to a Maple object.

NewMapleExpressionSequence

ToMapleBoolean

ToMapleChar

ToMapleComplex

ToMapleComplexFloat

ToMapleExpressionSequence

ToMapleFloat

ToMapleFunction

ToMapleInteger

ToMapleInteger64

ToMapleName

ToMapleNULL

ToMapleNULLPointer

ToMaplePointer

ToMapleRelation

ToMapleString

ToMapleUneval

 

 

 

Data Queries

  

The following is a list of functions that can be used to test for a kind of Maple object.

IsMapleAssignedName

IsMapleComplexNumeric

IsMapleEquation

IsMapleFraction

IsMapleInteger

IsMapleInteger16

IsMapleInteger32

IsMapleInteger64

IsMapleInteger8

IsMapleList

IsMapleLogical

IsMapleName

IsMapleNULL

IsMapleNumeric

IsMaplePointer

IsMaplePointerNULL

IsMapleProcedure

IsMapleRelation

IsMapleRTable

IsMapleSet

IsMapleStop

IsMapleString

IsMapleTable

IsMapleUnassignedName

IsMapleUnnamedZero

MapleNumArgs

 

 

Rectangular Table (Vector, Matrix, Array) Manipulation

  

The following is a list of functions that can be used to create, modify, inspect, and otherwise manipulate rtables.

RTableAppendAttribute

RTableAppendIndFn

RTableAssign

RTableCopy

RTableCopyImPart

RTableCopyRealPart

RTableCreate

RTableDataBlock

RTableGetDefaults

RTableGetSettings

RTableIndFn

RTableIndFnArgs

RTableIsReal

RTableLowerBound

RTableNumDimensions

RTableNumElements

RTableSelect

RTableSetAttribute

RTableSetIndFn

RTableSetType

RTableSparseCompact

RTableSparseIndexRow

RTableSparseIndexSort

RTableSparseResize

RTableSparseSetNumElems

RTableSparseSize

RTableUpperBound

RTableZipReIm

List and Table Manipulation

  

The following is a list of functions that can be used to create and access lists and tables.

MapleListAlloc

MapleListAssign

MapleListSelect

MapleTableAlloc

MapleTableAssign

MapleTableDelete

MapleTableHasEntry

MapleTableSelect

Output

  

The following is a list of functions that can be used to send formatted output to be displayed through the Maple user interface.

MapleALGEB_Printf

MapleALGEB_SPrintf

MaplePrintf

MapleUserInfo

Assignment and Selection Functions

  

The following is a list of functions that can be used to assign to variables, and select data from certain kinds of Maple objects.

MapleAssign

MapleAssignIndexed

MapleSelectImaginaryPart

MapleSelectIndexed

MapleSelectRealPart

 

 

 

Memory and Foreign Object Management

  

The following is a list of functions that can be used to create custom external data structures that refer to live Maple objects.

MapleAlloc

MapleDispose

MapleGcAllow

MapleGcIsProtected

MapleGcMark

MapleGcProtect

MaplePointerSetDisposeFunction

MaplePointerSetMarkFunction

MaplePointerSetPrintFunction

MaplePointerSetType

MaplePointerType

 

System and Maple Properties

  

The following is a list of functions that can be used to query various system and Maple properties.

MapleHelp

MapleKernelOptions

MapleLibName

 

Evaluation and Error Handling

  

The following is a list of functions that can be used to evaluate objects, functions, and expressions, and handle errors that may arise during evaluation.

ComplexTohfData

DoubleTohfData

EvalhfDataProc

EvalhfMapleProc

EvalMapleProc

EvalMapleStatement

ImaginaryhfData

MapleCheckInterrupt

MapleCreateContinuationTask

MapleCreateContinuationTask

MapleEval

MapleEvalhf

MapleGetInterruptValue

MapleMutexCreate

MapleMutexDestroy

MapleMutexLock

MapleMutexUnlock

MaplePopErrorProc

MaplePopGMPAllocators

MaplePushErrorProc

MaplePushGMPAllocators

MapleRaiseError

MapleRaiseError1

MapleRaiseError2

MapleRegisterThread

MapleStartChildTask

MapleStartRootTask

MapleTaskReturn

MapleTohfData

MapleTrapError

MapleUnique

MapleUnregisterThread

RealhfData

ToMaplehfData

 

 

See Also

CustomWrapper

define_external

OpenMaple

OpenMaple/C/Examples