fplib arithmetic on numbers in a particular format

Table 15 describes routines to perform arithmetic on numbers in a particular format. Arguments and return types are always in the same format.

Table 15. Arithmetic routines

FunctionArgument typesReturn typeOperation
__aeabi_fadd2 floatfloatReturn x plus y
__aeabi_fsub2 floatfloatReturn x minus y
__aeabi_frsub2 floatfloatReturn y minus x
__aeabi_fmul2 floatfloatReturn x times y
__aeabi_fdiv2 floatfloatReturn x divided by y
_frdiv2 floatfloatReturn y divided by x
_frem2 floatfloatReturn remainder of x by y (see a in Notes on arithmetic routines)
_frndfloatfloatReturn x rounded to an integer (see b in Notes on arithmetic routines)
_fsqrtfloatfloatReturn square root of x
__aeabi_dadd2 doubledoubleReturn x plus y
__aeabi_dsub2 doubledoubleReturn x minus y
__aeabi_drsub2 doubledoubleReturn y minus x
__aeabi_dmul2 doubledoubleReturn x times y
__aeabi_ddiv2 doubledoubleReturn x divided by y
_drdiv2 doubledoubleReturn y divided by x
_drem2 doubledoubleReturn remainder of x by y (see a and c in Notes on arithmetic routines)
_drnddoubledoubleReturn x rounded to an integer (see b in Notes on arithmetic routines)
_dsqrtdoubledoubleReturn square root of x

Show/hideNotes on arithmetic routines

a

Functions that perform the IEEE 754 remainder operation. This is defined to take two numbers, x and y, and return a number z so that z = x - n * y, where n is an integer. To return an exactly correct result, n is chosen so that z is no bigger than half of x (so that z might be negative even if both x and y are positive). The IEEE 754 remainder function is not the same as the operation performed by the C library function fmod, where z always has the same sign as x. Where the IEEE 754 specification gives two acceptable choices of n, the even one is chosen. This behavior occurs independently of the current rounding mode.

b

Functions that perform the IEEE 754 round-to-integer operation. This takes a number and rounds it to an integer (in accordance with the current rounding mode), but returns that integer in the floating-point number format rather than as a C int variable. To convert a number to an int variable, you must use the _ffix routines described in Table 16.

c

The IEEE 754 remainder() function is a synonym for _drem. remainder() is defined in math.h.

Show/hideSee also

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0475H
Non-ConfidentialID070912