create an rtable in external code - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Programming : OpenMaple : VB Application Programming Interface : RTable Manipulation : OpenMaple/VB/RTableCreate

RTableCreate - create an rtable in external code

Calling Sequence

RTableCreateDefault(kv, rts, zero, bounds)

RTableCreateDAG(kv, rts, pdata, bounds)

RTableCreateInteger8(kv, rts, pdata, bounds)

RTableCreateInteger16(kv, rts, pdata, bounds)

RTableCreateInteger32(kv, rts, pdata, bounds)

RTableCreateFloat32(kv, rts, pdata, bounds)

RTableCreateFloat64(kv, rts, pdata, bounds)

RTableCreateComplexDAG(kv, rts, pdata, bounds)

RTableCreateComplex64(kv, rts, pdata, bounds)

Parameters

kv

-

kernel handle returned by StartMaple

rts

-

pointer to an RTableSettings structure

pdata

-

pointer to array data

bounds

-

array of lower and upper bounds

Description

• 

These functions are part of the OpenMaple interface to Microsoft Visual Basic.

• 

The RTableCreate function creates a new rtable with the settings specified in rts.

• 

When using RTableCreateDefault the pdata must be set to 0.  In this case a data block is allocated and initialized to rts.fill. When using the other RTableCreate functions, you must specify a previously created block of data. It is important that rts.foreign is set to TRUE. Size, storage, data_type, order, and indexing functions must all be considered when managing your data block.

• 

The array, bounds is a list of the lower and upper bounds for each dimension of the rtable.  For example, a MxN Matrix has bounds[0] = 1; bounds[1] = M; bounds[2] = 1; bounds[3] = N.

• 

The 2-D format of VB Arrays do not match the Maple rtable data-block memory layout, so pdata must be a pointer to a 1-D Array. 2-D can be achieved using a 1-D Array by simple arithmetic on the index.

  

Note: Matrix and Vector lower bounds must start at 1, not 0.

Examples

Public Sub TestRTableCreate(ByVal kv As Long)

    Dim rts As RTableSettings

    Dim rt As Long

    Dim bounds(4) As Long

    Dim data(16) As Long

    Dim n, i, j As Long

    ' fill in the settings

    RTableGetDefaults kv, rts

    rts.num_dimensions = 2

    rts.subtype = RTABLE_MATRIX

    rts.data_type = RTABLE_INTEGER32

    rts.foreign = True

    rts.order = RTABLE_FORTRAN

    n = 4

    bounds(0) = 1

    bounds(1) = n

    bounds(2) = 1

    bounds(3) = n

    ' create the rtable

    rt = RTableCreateInteger32(kv, rts, data(0), bounds(0))

    ' fill the diagonal with ones

    For i = 0 To n - 1

        data(n * i + i) = 1

    Next i

    MapleALGEB_Printf1 kv, "rtable = %a", rt

End Sub

See Also

OpenMaple, OpenMaple/VB/API, OpenMaple/VB/Examples, rtable, trademarks


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam