mirror of
https://github.com/reactos/reactos.git
synced 2024-10-15 13:45:58 +00:00
[CRT]
- Add a number of amd64 specific math functions - add generic c versions of cos and sin - Remove leading underscores from amd64 symbols svn path=/trunk/; revision=48161
This commit is contained in:
parent
6c98c1057f
commit
f0daba18dd
|
@ -113,6 +113,7 @@
|
||||||
<file>adjust.c</file>
|
<file>adjust.c</file>
|
||||||
<file>asin.c</file>
|
<file>asin.c</file>
|
||||||
<file>cabs.c</file>
|
<file>cabs.c</file>
|
||||||
|
<file>cosf.c</file>
|
||||||
<file>cosh.c</file>
|
<file>cosh.c</file>
|
||||||
<file>div.c</file>
|
<file>div.c</file>
|
||||||
<file>fdivbug.c</file>
|
<file>fdivbug.c</file>
|
||||||
|
@ -123,6 +124,7 @@
|
||||||
<file>modf.c</file>
|
<file>modf.c</file>
|
||||||
<file>rand.c</file>
|
<file>rand.c</file>
|
||||||
<file>s_modf.c</file>
|
<file>s_modf.c</file>
|
||||||
|
<file>sinf.c</file>
|
||||||
<file>sinh.c</file>
|
<file>sinh.c</file>
|
||||||
<file>tanh.c</file>
|
<file>tanh.c</file>
|
||||||
<file>pow_asm.c</file>
|
<file>pow_asm.c</file>
|
||||||
|
@ -141,9 +143,11 @@
|
||||||
<file>aullrem_asm.s</file>
|
<file>aullrem_asm.s</file>
|
||||||
<file>aullshr_asm.s</file>
|
<file>aullshr_asm.s</file>
|
||||||
<file>ceil_asm.s</file>
|
<file>ceil_asm.s</file>
|
||||||
|
<file>ceilf.S</file>
|
||||||
<file>cos_asm.s</file>
|
<file>cos_asm.s</file>
|
||||||
<file>fabs_asm.s</file>
|
<file>fabs_asm.s</file>
|
||||||
<file>floor_asm.s</file>
|
<file>floor_asm.s</file>
|
||||||
|
<file>floorf.S</file>
|
||||||
<file>ftol_asm.s</file>
|
<file>ftol_asm.s</file>
|
||||||
<file>log_asm.s</file>
|
<file>log_asm.s</file>
|
||||||
<file>log10_asm.s</file>
|
<file>log10_asm.s</file>
|
||||||
|
@ -156,7 +160,9 @@
|
||||||
<file>ci.c</file>
|
<file>ci.c</file>
|
||||||
<file>exp.c</file>
|
<file>exp.c</file>
|
||||||
<file>fmod.c</file>
|
<file>fmod.c</file>
|
||||||
|
<file>fmodf.c</file>
|
||||||
<file>ldexp.c</file>
|
<file>ldexp.c</file>
|
||||||
|
<file>sqrtf.c</file>
|
||||||
</directory>
|
</directory>
|
||||||
<!-- FIXME: we don't actually implement these... they recursively call themselves through an alias -->
|
<!-- FIXME: we don't actually implement these... they recursively call themselves through an alias -->
|
||||||
<!--<file>j0_y0.c</file>
|
<!--<file>j0_y0.c</file>
|
||||||
|
@ -164,11 +170,27 @@
|
||||||
<file>jn_yn.c</file>-->
|
<file>jn_yn.c</file>-->
|
||||||
</if>
|
</if>
|
||||||
<if property="ARCH" value="amd64">
|
<if property="ARCH" value="amd64">
|
||||||
<directory name="i386">
|
<file>cos.c</file>
|
||||||
<file>atan2.c</file>
|
<file>sin.c</file>
|
||||||
<file>exp.c</file>
|
<directory name="amd64">
|
||||||
<file>fmod.c</file>
|
<file>alldiv.S</file>
|
||||||
<file>ldexp.c</file>
|
<file>atan.S</file>
|
||||||
|
<file>atan2.S</file>
|
||||||
|
<file>ceil.S</file>
|
||||||
|
<file>ceilf.S</file>
|
||||||
|
<file>exp.S</file>
|
||||||
|
<file>fabs.S</file>
|
||||||
|
<file>floor.S</file>
|
||||||
|
<file>floorf.S</file>
|
||||||
|
<file>fmod.S</file>
|
||||||
|
<file>fmodf.S</file>
|
||||||
|
<file>ldexp.S</file>
|
||||||
|
<file>log.S</file>
|
||||||
|
<file>log10.S</file>
|
||||||
|
<file>pow.S</file>
|
||||||
|
<file>sqrt.S</file>
|
||||||
|
<file>sqrtf.S</file>
|
||||||
|
<file>tan.S</file>
|
||||||
</directory>
|
</directory>
|
||||||
<!-- FIXME: we don't actually implement these... they recursively call themselves through an alias -->
|
<!-- FIXME: we don't actually implement these... they recursively call themselves through an alias -->
|
||||||
<!--<file>j0_y0.c</file>
|
<!--<file>j0_y0.c</file>
|
||||||
|
|
|
@ -8,24 +8,23 @@
|
||||||
|
|
||||||
/* INCLUDES ******************************************************************/
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ndk/amd64/asm.h>
|
#include <reactos/asm.h>
|
||||||
#include <ndk/amd64/asmmacro.S>
|
|
||||||
|
|
||||||
.intel_syntax noprefix
|
.intel_syntax noprefix
|
||||||
|
|
||||||
.global _MsgUnimplemented
|
.global MsgUnimplemented
|
||||||
_MsgUnimplemented:
|
MsgUnimplemented:
|
||||||
.asciz "WARNING: %s at %s:%d is UNIMPLEMENTED!\n"
|
.asciz "WARNING: %s at %s:%d is UNIMPLEMENTED!\n"
|
||||||
|
|
||||||
|
|
||||||
.proc _chkstk
|
.proc _chkstk
|
||||||
UNIMPLEMENTED chkstk
|
UNIMPLEMENTED chkstk
|
||||||
ret
|
ret
|
||||||
.endproc
|
.endp
|
||||||
|
|
||||||
.proc _alloca_probe
|
.proc _alloca_probe
|
||||||
UNIMPLEMENTED alloca_probe
|
UNIMPLEMENTED alloca_probe
|
||||||
ret
|
ret
|
||||||
.endproc
|
.endp
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
.func unwind_handler
|
.func _unwind_handler
|
||||||
_unwind_handler:
|
_unwind_handler:
|
||||||
ret
|
ret
|
||||||
.endfunc
|
.endfunc
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
<define name="_NTDLLBUILD_" />
|
<define name="_NTDLLBUILD_" />
|
||||||
<define name="_LIBCNT_" />
|
<define name="_LIBCNT_" />
|
||||||
<define name="_CRTBLD" />
|
<define name="_CRTBLD" />
|
||||||
|
<define name="__CRT__NO_INLINE" />
|
||||||
<if property="ARCH" value="i386">
|
<if property="ARCH" value="i386">
|
||||||
<define name="__MINGW_IMPORT">"extern __attribute__ ((dllexport))"</define>
|
<define name="__MINGW_IMPORT">"extern __attribute__ ((dllexport))"</define>
|
||||||
</if>
|
</if>
|
||||||
|
@ -59,6 +60,26 @@
|
||||||
<file>tan_asm.s</file>
|
<file>tan_asm.s</file>
|
||||||
</directory>
|
</directory>
|
||||||
</if>
|
</if>
|
||||||
|
<if property="ARCH" value="amd64">
|
||||||
|
<file>cos.c</file>
|
||||||
|
<file>sin.c</file>
|
||||||
|
<directory name="amd64">
|
||||||
|
<file>alldiv.S</file>
|
||||||
|
<file>atan.S</file>
|
||||||
|
<file>atan2.S</file>
|
||||||
|
<file>ceil.S</file>
|
||||||
|
<file>exp.S</file>
|
||||||
|
<file>fabs.S</file>
|
||||||
|
<file>floor.S</file>
|
||||||
|
<file>fmod.S</file>
|
||||||
|
<file>ldexp.S</file>
|
||||||
|
<file>log.S</file>
|
||||||
|
<file>log10.S</file>
|
||||||
|
<file>pow.S</file>
|
||||||
|
<file>sqrt.S</file>
|
||||||
|
<file>tan.S</file>
|
||||||
|
</directory>
|
||||||
|
</if>
|
||||||
<file>abs.c</file>
|
<file>abs.c</file>
|
||||||
<file>div.c</file>
|
<file>div.c</file>
|
||||||
<file>labs.c</file>
|
<file>labs.c</file>
|
||||||
|
|
28
reactos/lib/sdk/crt/math/amd64/alldiv.S
Normal file
28
reactos/lib/sdk/crt/math/amd64/alldiv.S
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of alldiv
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/alldiv.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* DATA *********************************************************************/
|
||||||
|
|
||||||
|
PUBLIC _fltused
|
||||||
|
_fltused:
|
||||||
|
.long 0x9875
|
||||||
|
|
||||||
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
.code64
|
||||||
|
|
||||||
|
.proc alldiv
|
||||||
|
UNIMPLEMENTED alldiv
|
||||||
|
ret
|
||||||
|
|
||||||
|
.endp alldiv
|
21
reactos/lib/sdk/crt/math/amd64/atan.S
Normal file
21
reactos/lib/sdk/crt/math/amd64/atan.S
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of atan
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/atan.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC atan
|
||||||
|
atan:
|
||||||
|
UNIMPLEMENTED atan
|
||||||
|
ret
|
21
reactos/lib/sdk/crt/math/amd64/atan2.S
Normal file
21
reactos/lib/sdk/crt/math/amd64/atan2.S
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of atan2
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/atan2.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC atan2
|
||||||
|
atan2:
|
||||||
|
UNIMPLEMENTED atan2
|
||||||
|
ret
|
22
reactos/lib/sdk/crt/math/amd64/ceil.S
Normal file
22
reactos/lib/sdk/crt/math/amd64/ceil.S
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of ceil
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/ceil.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC ceil
|
||||||
|
ceil:
|
||||||
|
UNIMPLEMENTED ceil
|
||||||
|
ret
|
||||||
|
|
40
reactos/lib/sdk/crt/math/amd64/ceilf.S
Normal file
40
reactos/lib/sdk/crt/math/amd64/ceilf.S
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of tan
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/ceilf.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC ceilf
|
||||||
|
ceilf:
|
||||||
|
/* Put parameter on the stack */
|
||||||
|
movss [rsp - 0x10], xmm0
|
||||||
|
fld dword ptr [rsp]
|
||||||
|
|
||||||
|
/* Change fpu control word to round up */
|
||||||
|
fstcw [rsp - 0x10]
|
||||||
|
mov eax, [rsp - 0x10]
|
||||||
|
or eax, 0x00800
|
||||||
|
and eax, 0x0fbff
|
||||||
|
mov [rsp - 0x08], eax
|
||||||
|
fldcw [rsp - 0x08]
|
||||||
|
|
||||||
|
/* Round to integer */
|
||||||
|
frndint
|
||||||
|
|
||||||
|
/* Restore fpu control word */
|
||||||
|
fldcw [rsp - 0x10]
|
||||||
|
|
||||||
|
fstp dword ptr [rsp - 0x10]
|
||||||
|
movss xmm0, [rsp - 0x10]
|
||||||
|
ret
|
22
reactos/lib/sdk/crt/math/amd64/exp.S
Normal file
22
reactos/lib/sdk/crt/math/amd64/exp.S
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of exp
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/exp.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC exp
|
||||||
|
exp:
|
||||||
|
UNIMPLEMENTED exp
|
||||||
|
ret
|
||||||
|
|
22
reactos/lib/sdk/crt/math/amd64/fabs.S
Normal file
22
reactos/lib/sdk/crt/math/amd64/fabs.S
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of fabs
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/fabs.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC fabs
|
||||||
|
fabs:
|
||||||
|
UNIMPLEMENTED fabs
|
||||||
|
ret
|
||||||
|
|
21
reactos/lib/sdk/crt/math/amd64/floor.S
Normal file
21
reactos/lib/sdk/crt/math/amd64/floor.S
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of floor
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/floor.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC floor
|
||||||
|
floor:
|
||||||
|
UNIMPLEMENTED floor
|
||||||
|
ret
|
40
reactos/lib/sdk/crt/math/amd64/floorf.S
Normal file
40
reactos/lib/sdk/crt/math/amd64/floorf.S
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of tan
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/floorf.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
|
.code64
|
||||||
|
|
||||||
|
PUBLIC floorf
|
||||||
|
floorf:
|
||||||
|
/* Put parameter on the stack */
|
||||||
|
movss [rsp - 0x10], xmm0
|
||||||
|
fld dword ptr [rsp]
|
||||||
|
|
||||||
|
/* Change fpu control word to round down */
|
||||||
|
fstcw [rsp - 0x10]
|
||||||
|
mov eax, [rsp - 0x10]
|
||||||
|
or eax, 0x00400
|
||||||
|
and eax, 0x0f7ff
|
||||||
|
mov [rsp - 0x08], eax
|
||||||
|
fldcw [rsp - 0x08]
|
||||||
|
|
||||||
|
/* Round to integer */
|
||||||
|
frndint
|
||||||
|
|
||||||
|
/* Restore fpu control word */
|
||||||
|
fldcw [rsp - 0x10]
|
||||||
|
|
||||||
|
fstp dword ptr [rsp - 0x10]
|
||||||
|
movss xmm0, [rsp - 0x10]
|
||||||
|
ret
|
19
reactos/lib/sdk/crt/math/amd64/fmod.S
Normal file
19
reactos/lib/sdk/crt/math/amd64/fmod.S
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of fmod
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/fmod.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* DATA *********************************************************************/
|
||||||
|
|
||||||
|
PUBLIC fmod
|
||||||
|
fmod:
|
||||||
|
UNIMPLEMENTED fmod
|
||||||
|
ret
|
19
reactos/lib/sdk/crt/math/amd64/fmodf.S
Normal file
19
reactos/lib/sdk/crt/math/amd64/fmodf.S
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of fmodf
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/fmodf.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* DATA *********************************************************************/
|
||||||
|
|
||||||
|
PUBLIC fmodf
|
||||||
|
fmodf:
|
||||||
|
UNIMPLEMENTED fmodf
|
||||||
|
ret
|
19
reactos/lib/sdk/crt/math/amd64/ldexp.S
Normal file
19
reactos/lib/sdk/crt/math/amd64/ldexp.S
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of ldexp
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/ldexp.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* DATA *********************************************************************/
|
||||||
|
|
||||||
|
PUBLIC ldexp
|
||||||
|
ldexp:
|
||||||
|
UNIMPLEMENTED ldexp
|
||||||
|
ret
|
19
reactos/lib/sdk/crt/math/amd64/log.S
Normal file
19
reactos/lib/sdk/crt/math/amd64/log.S
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of log
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/log.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* DATA *********************************************************************/
|
||||||
|
|
||||||
|
PUBLIC log
|
||||||
|
log:
|
||||||
|
UNIMPLEMENTED log
|
||||||
|
ret
|
20
reactos/lib/sdk/crt/math/amd64/log10.S
Normal file
20
reactos/lib/sdk/crt/math/amd64/log10.S
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of log10
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/log10.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* DATA *********************************************************************/
|
||||||
|
|
||||||
|
PUBLIC log10
|
||||||
|
log10:
|
||||||
|
UNIMPLEMENTED log10
|
||||||
|
ret
|
||||||
|
|
20
reactos/lib/sdk/crt/math/amd64/pow.S
Normal file
20
reactos/lib/sdk/crt/math/amd64/pow.S
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of pow
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/pow.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* DATA *********************************************************************/
|
||||||
|
|
||||||
|
PUBLIC pow
|
||||||
|
pow:
|
||||||
|
UNIMPLEMENTED pow
|
||||||
|
ret
|
||||||
|
|
19
reactos/lib/sdk/crt/math/amd64/sqrt.S
Normal file
19
reactos/lib/sdk/crt/math/amd64/sqrt.S
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of sqrt
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/sqrt.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* DATA *********************************************************************/
|
||||||
|
|
||||||
|
PUBLIC sqrt
|
||||||
|
sqrt:
|
||||||
|
UNIMPLEMENTED sqrt
|
||||||
|
ret
|
19
reactos/lib/sdk/crt/math/amd64/sqrtf.S
Normal file
19
reactos/lib/sdk/crt/math/amd64/sqrtf.S
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of tan
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/sqrtf.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* DATA *********************************************************************/
|
||||||
|
|
||||||
|
PUBLIC sqrtf
|
||||||
|
sqrtf:
|
||||||
|
sqrtss xmm0, xmm0
|
||||||
|
ret
|
19
reactos/lib/sdk/crt/math/amd64/tan.S
Normal file
19
reactos/lib/sdk/crt/math/amd64/tan.S
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS system libraries
|
||||||
|
* PURPOSE: Implementation of tan
|
||||||
|
* FILE: lib/sdk/crt/math/amd64/tan.S
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
|
#include <reactos/asm.h>
|
||||||
|
#include <ndk/amd64/asm.h>
|
||||||
|
|
||||||
|
/* DATA *********************************************************************/
|
||||||
|
|
||||||
|
PUBLIC tan
|
||||||
|
tan:
|
||||||
|
UNIMPLEMENTED tan
|
||||||
|
ret
|
89
reactos/lib/sdk/crt/math/cos.c
Normal file
89
reactos/lib/sdk/crt/math/cos.c
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS CRT
|
||||||
|
* FILE: lib/crt/math/cos.c
|
||||||
|
* PURPOSE: Generic C Implementation of cos
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define PRECISION 9
|
||||||
|
#define M_PI 3.141592653589793238462643
|
||||||
|
|
||||||
|
static double cos_off_tbl[] = {0.0, -M_PI/2., 0, -M_PI/2.};
|
||||||
|
static double cos_sign_tbl[] = {1,-1,-1,1};
|
||||||
|
|
||||||
|
double
|
||||||
|
cos(double x)
|
||||||
|
{
|
||||||
|
int quadrant;
|
||||||
|
double x2, result;
|
||||||
|
|
||||||
|
/* Calculate the quadrant */
|
||||||
|
quadrant = x * (2./M_PI);
|
||||||
|
|
||||||
|
/* Get offset inside quadrant */
|
||||||
|
x = x - quadrant * (M_PI/2.);
|
||||||
|
|
||||||
|
/* Normalize quadrant to [0..3] */
|
||||||
|
quadrant = quadrant & 0x3;
|
||||||
|
|
||||||
|
/* Fixup value for the generic function */
|
||||||
|
x += cos_off_tbl[quadrant];
|
||||||
|
|
||||||
|
/* Calculate the negative of the square of x */
|
||||||
|
x2 = - (x * x);
|
||||||
|
|
||||||
|
/* This is an unrolled taylor series using <PRECISION> iterations
|
||||||
|
* Example with 4 iterations:
|
||||||
|
* result = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8!
|
||||||
|
* To save multiplications and to keep the precision high, it's performed
|
||||||
|
* like this:
|
||||||
|
* result = 1 - x^2 * (1/2! - x^2 * (1/4! - x^2 * (1/6! - x^2 * (1/8!))))
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Start with 0, compiler will optimize this away */
|
||||||
|
result = 0;
|
||||||
|
|
||||||
|
#if (PRECISION >= 10)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
#if (PRECISION >= 9)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
#if (PRECISION >= 8)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
#if (PRECISION >= 7)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10*11*12*13*14);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
#if (PRECISION >= 6)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10*11*12);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
#if (PRECISION >= 5)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8);
|
||||||
|
result *= x2;
|
||||||
|
|
||||||
|
result += 1./(1.*2*3*4*5*6);
|
||||||
|
result *= x2;
|
||||||
|
|
||||||
|
result += 1./(1.*2*3*4);
|
||||||
|
result *= x2;
|
||||||
|
|
||||||
|
result += 1./(1.*2);
|
||||||
|
result *= x2;
|
||||||
|
|
||||||
|
result += 1;
|
||||||
|
|
||||||
|
/* Apply correct sign */
|
||||||
|
result *= cos_sign_tbl[quadrant];
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
11
reactos/lib/sdk/crt/math/cosf.c
Normal file
11
reactos/lib/sdk/crt/math/cosf.c
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* This file has no copyright assigned and is placed in the Public Domain.
|
||||||
|
* This file is part of the w64 mingw-runtime package.
|
||||||
|
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
||||||
|
*/
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
float cosf(float _X)
|
||||||
|
{
|
||||||
|
return ((float)cos((double)_X));
|
||||||
|
}
|
55
reactos/lib/sdk/crt/math/i386/ceilf.S
Normal file
55
reactos/lib/sdk/crt/math/i386/ceilf.S
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
/**
|
||||||
|
* This file has no copyright assigned and is placed in the Public Domain.
|
||||||
|
* This file is part of the w64 mingw-runtime package.
|
||||||
|
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
||||||
|
*/
|
||||||
|
#include <_mingw_mac.h>
|
||||||
|
|
||||||
|
.file "ceilf.S"
|
||||||
|
.text
|
||||||
|
.align 4
|
||||||
|
.globl __MINGW_USYMBOL(ceilf)
|
||||||
|
.def __MINGW_USYMBOL(ceilf); .scl 2; .type 32; .endef
|
||||||
|
__MINGW_USYMBOL(ceilf):
|
||||||
|
#ifdef _WIN64
|
||||||
|
subq $24,%rsp
|
||||||
|
movss %xmm0,8(%rsp)
|
||||||
|
flds 8(%rsp)
|
||||||
|
|
||||||
|
fstcw 4(%rsp) /* store fpu control word */
|
||||||
|
|
||||||
|
movl $0x0800,%edx /* round towards +oo */
|
||||||
|
orl 4(%rsp),%edx
|
||||||
|
andl $0xfbff,%edx
|
||||||
|
movl %edx,(%rsp)
|
||||||
|
fldcw (%rsp) /* load modified control word */
|
||||||
|
|
||||||
|
frndint /* round */
|
||||||
|
|
||||||
|
fldcw 4(%rsp) /* restore original control word */
|
||||||
|
fstps 8(%rsp)
|
||||||
|
movss 8(%rsp),%xmm0
|
||||||
|
addq $24,%rsp
|
||||||
|
ret
|
||||||
|
#else
|
||||||
|
flds 4(%esp)
|
||||||
|
subl $8,%esp
|
||||||
|
|
||||||
|
fstcw 4(%esp) /* store fpu control word */
|
||||||
|
|
||||||
|
/* We use here %edx although only the low 1 bits are defined.
|
||||||
|
But none of the operations should care and they are faster
|
||||||
|
than the 16 bit operations. */
|
||||||
|
movl $0x0800,%edx /* round towards +oo */
|
||||||
|
orl 4(%esp),%edx
|
||||||
|
andl $0xfbff,%edx
|
||||||
|
movl %edx,(%esp)
|
||||||
|
fldcw (%esp) /* load modified control word */
|
||||||
|
|
||||||
|
frndint /* round */
|
||||||
|
|
||||||
|
fldcw 4(%esp) /* restore original control word */
|
||||||
|
|
||||||
|
addl $8,%esp
|
||||||
|
ret
|
||||||
|
#endif
|
63
reactos/lib/sdk/crt/math/i386/floorf.S
Normal file
63
reactos/lib/sdk/crt/math/i386/floorf.S
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* Written by J.T. Conklin <jtc@netbsd.org>.
|
||||||
|
* Public domain.
|
||||||
|
*
|
||||||
|
* Changes for long double by Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
*
|
||||||
|
* Removed header file dependency for use in libmingwex.a by
|
||||||
|
* Danny Smith <dannysmith@users.sourceforge.net>
|
||||||
|
*/
|
||||||
|
#include <_mingw_mac.h>
|
||||||
|
|
||||||
|
.file "floorf.S"
|
||||||
|
.text
|
||||||
|
#ifdef _WIN64
|
||||||
|
.align 8
|
||||||
|
#else
|
||||||
|
.align 4
|
||||||
|
#endif
|
||||||
|
.globl __MINGW_USYMBOL(floorf)
|
||||||
|
.def __MINGW_USYMBOL(floorf); .scl 2; .type 32; .endef
|
||||||
|
__MINGW_USYMBOL(floorf):
|
||||||
|
#ifdef _WIN64
|
||||||
|
subq $24,%rsp
|
||||||
|
movss %xmm0,8(%rsp)
|
||||||
|
flds 8(%rsp)
|
||||||
|
|
||||||
|
fstcw 4(%rsp) /* store fpu control word */
|
||||||
|
movl $0x400,%edx /* round towards -oo */
|
||||||
|
orl 4(%rsp),%edx
|
||||||
|
andl $0xf7ff,%edx
|
||||||
|
movl %edx,(%rsp)
|
||||||
|
fldcw (%rsp) /* load modified control word */
|
||||||
|
|
||||||
|
frndint /* round */
|
||||||
|
|
||||||
|
fldcw 4(%rsp) /* restore original control word */
|
||||||
|
|
||||||
|
fstps 8(%rsp)
|
||||||
|
movss 8(%rsp),%xmm0
|
||||||
|
addq $24,%rsp
|
||||||
|
ret
|
||||||
|
#else
|
||||||
|
flds 4(%esp)
|
||||||
|
subl $8,%esp
|
||||||
|
|
||||||
|
fstcw 4(%esp) /* store fpu control word */
|
||||||
|
|
||||||
|
/* We use here %edx although only the low 1 bits are defined.
|
||||||
|
But none of the operations should care and they are faster
|
||||||
|
than the 16 bit operations. */
|
||||||
|
movl $0x400,%edx /* round towards -oo */
|
||||||
|
orl 4(%esp),%edx
|
||||||
|
andl $0xf7ff,%edx
|
||||||
|
movl %edx,(%esp)
|
||||||
|
fldcw (%esp) /* load modified control word */
|
||||||
|
|
||||||
|
frndint /* round */
|
||||||
|
|
||||||
|
fldcw 4(%esp) /* restore original control word */
|
||||||
|
|
||||||
|
addl $8,%esp
|
||||||
|
ret
|
||||||
|
#endif
|
28
reactos/lib/sdk/crt/math/i386/fmodf.c
Normal file
28
reactos/lib/sdk/crt/math/i386/fmodf.c
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
/**
|
||||||
|
* This file has no copyright assigned and is placed in the Public Domain.
|
||||||
|
* This file is part of the w64 mingw-runtime package.
|
||||||
|
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* Written by J.T. Conklin <jtc@netbsd.org>.
|
||||||
|
* Public domain.
|
||||||
|
*
|
||||||
|
* Adapted for float type by Danny Smith
|
||||||
|
* <dannysmith@users.sourceforge.net>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
float
|
||||||
|
fmodf (float x, float y)
|
||||||
|
{
|
||||||
|
float res = 0.0F;
|
||||||
|
|
||||||
|
asm ("1:\tfprem\n\t"
|
||||||
|
"fstsw %%ax\n\t"
|
||||||
|
"sahf\n\t"
|
||||||
|
"jp 1b\n\t"
|
||||||
|
"fstp %%st(1)"
|
||||||
|
: "=t" (res) : "0" (x), "u" (y) : "ax", "st(1)");
|
||||||
|
return res;
|
||||||
|
}
|
12
reactos/lib/sdk/crt/math/i386/sqrtf.c
Normal file
12
reactos/lib/sdk/crt/math/i386/sqrtf.c
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
/**
|
||||||
|
* This file has no copyright assigned and is placed in the Public Domain.
|
||||||
|
* This file is part of the w64 mingw-runtime package.
|
||||||
|
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
||||||
|
*/
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
float
|
||||||
|
sqrtf(float x)
|
||||||
|
{
|
||||||
|
return ((float)sqrt((double)x));
|
||||||
|
}
|
89
reactos/lib/sdk/crt/math/sin.c
Normal file
89
reactos/lib/sdk/crt/math/sin.c
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
/*
|
||||||
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
|
* PROJECT: ReactOS CRT
|
||||||
|
* FILE: lib/crt/math/sin.c
|
||||||
|
* PURPOSE: Generic C Implementation of sin
|
||||||
|
* PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define PRECISION 9
|
||||||
|
#define M_PI 3.141592653589793238462643
|
||||||
|
|
||||||
|
static double sin_off_tbl[] = {0.0, -M_PI/2., 0, -M_PI/2.};
|
||||||
|
static double sin_sign_tbl[] = {1,-1,-1,1};
|
||||||
|
|
||||||
|
double
|
||||||
|
sin(double x)
|
||||||
|
{
|
||||||
|
int quadrant;
|
||||||
|
double x2, result;
|
||||||
|
|
||||||
|
/* Calculate the quadrant */
|
||||||
|
quadrant = x * (2./M_PI);
|
||||||
|
|
||||||
|
/* Get offset inside quadrant */
|
||||||
|
x = x - quadrant * (M_PI/2.);
|
||||||
|
|
||||||
|
/* Normalize quadrant to [0..3] */
|
||||||
|
quadrant = (quadrant - 1) & 0x3;
|
||||||
|
|
||||||
|
/* Fixup value for the generic function */
|
||||||
|
x += sin_off_tbl[quadrant];
|
||||||
|
|
||||||
|
/* Calculate the negative of the square of x */
|
||||||
|
x2 = - (x * x);
|
||||||
|
|
||||||
|
/* This is an unrolled taylor series using <PRECISION> iterations
|
||||||
|
* Example with 4 iterations:
|
||||||
|
* result = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8!
|
||||||
|
* To save multiplications and to keep the precision high, it's performed
|
||||||
|
* like this:
|
||||||
|
* result = 1 - x^2 * (1/2! - x^2 * (1/4! - x^2 * (1/6! - x^2 * (1/8!))))
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Start with 0, compiler will optimize this away */
|
||||||
|
result = 0;
|
||||||
|
|
||||||
|
#if (PRECISION >= 10)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
#if (PRECISION >= 9)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
#if (PRECISION >= 8)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
#if (PRECISION >= 7)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10*11*12*13*14);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
#if (PRECISION >= 6)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10*11*12);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
#if (PRECISION >= 5)
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8*9*10);
|
||||||
|
result *= x2;
|
||||||
|
#endif
|
||||||
|
result += 1./(1.*2*3*4*5*6*7*8);
|
||||||
|
result *= x2;
|
||||||
|
|
||||||
|
result += 1./(1.*2*3*4*5*6);
|
||||||
|
result *= x2;
|
||||||
|
|
||||||
|
result += 1./(1.*2*3*4);
|
||||||
|
result *= x2;
|
||||||
|
|
||||||
|
result += 1./(1.*2);
|
||||||
|
result *= x2;
|
||||||
|
|
||||||
|
result += 1;
|
||||||
|
|
||||||
|
/* Apply correct sign */
|
||||||
|
result *= sin_sign_tbl[quadrant];
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
11
reactos/lib/sdk/crt/math/sinf.c
Normal file
11
reactos/lib/sdk/crt/math/sinf.c
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
/**
|
||||||
|
* This file has no copyright assigned and is placed in the Public Domain.
|
||||||
|
* This file is part of the w64 mingw-runtime package.
|
||||||
|
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
||||||
|
*/
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
float sinf(float _X)
|
||||||
|
{
|
||||||
|
return ((float) sin ((double) _X));
|
||||||
|
}
|
Loading…
Reference in a new issue