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

Online Help

All Products    Maple    MapleSim


MapleEvalhf

evaluate an object using hardware floats in external code

EvalhfMapleProc

evaluate a procedure using hardware floats in external code

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

MapleEvalhf(kv, s)

EvalhfMapleProc(kv, fn, n, args)

Parameters

kv

-

kernel handle returned by StartMaple

s

-

Maple object object

fn

-

Maple FUNCTION object

n

-

number of arguments

args

-

array of n hardware floats

Description

• 

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

• 

The MapleEvalhf function evaluates an expression to a numerical value using the hardware floating-point of the underlying system.  This command is equivalent to the Maple function, evalhf.

• 

The EvalhfMapleProc function evaluates the function, f(args), to a numerical value using evalhf.  The n arguments provided are all 64-bit hardware floating-point numbers. The first argument must be inserted at args[1].  For example, to call f(3.14,2.718), set args[1] = 3.14, and args[2] = 2.718.  The value at args[0] is not used.

Examples

Function MyNewton(ByVal kv As Long) As Double

    Dim i As Long

    Dim guess(2) As Double

    Dim tolerance As Double

    Dim f, fprime, x, initguess As Long

    ' define a function in x to solve, and find it's derivative

    f = EvalMapleStatement(kv, "(x) -> x^3+2*x^2-9*x+2;")

    MapleAssign kv, ToMapleName(kv, "f", True), f

    fprime = EvalMapleStatement(kv, "unapply(diff(f(x),x),x);")

    x = ToMapleName(kv, "x", True)

    guess(1) = 1.1

    tolerance = 0.0001

    ' find a root (abort after 500 iterations)

    For i = 0 To 500

        'test current guess

        If Abs(EvalhfMapleProc(kv, f, 1, guess(0))) <= tolerance Then

            i = 501 'break

        Else

            'refine guess

            guess(1) = guess(1) - EvalhfMapleProc(kv, f, 1, guess(0)) / _

                        EvalhfMapleProc(kv, fprime, 1, guess(0))

        End If

    Next i

    If i = 500 Then

        MyNewton = -999999  'couldn't find root

    Else

        MyNewton = guess(1)

    End If

End Function

See Also

evalhf

OpenMaple

OpenMaple/VB/API

OpenMaple/VB/Examples