(********************************************** ** EXTENDED_FLOAT.sml ** sml ** ** Aleksandar Nanevski ** ** A set of primitives needed for writting ** adaptive floating point code. **********************************************) signature EXTENDED_FLOAT = sig structure XFloat : XFLOAT type quad val sum : real * real -> quad val diff : real * real -> quad val sumfast : real * real -> quad val diffast : real * real -> quad val prod : real * real -> quad val sq : real -> quad val fromReal : real -> quad val toXFloat : quad -> XFloat.xfloat val approx : quad -> real val err : quad -> real val toResErr : quad -> {res : real, err : real} val + : quad * quad -> XFloat.xfloat val - : quad * quad -> XFloat.xfloat val * : quad * quad -> XFloat.xfloat val ~ : quad -> quad val double : quad -> quad val sq2 : quad -> XFloat.xfloat val abs : quad -> quad val add : quad * real -> XFloat.xfloat val sub : quad * real -> XFloat.xfloat val isub : real * quad -> XFloat.xfloat val scale : real * quad -> XFloat.xfloat val add2 : XFloat.xfloat * quad -> XFloat.xfloat val sub2 : XFloat.xfloat * quad -> XFloat.xfloat val isub2 : quad * XFloat.xfloat -> XFloat.xfloat val scale2 : quad * XFloat.xfloat -> XFloat.xfloat val toString : quad -> string end