mirror of
https://github.com/zeldaret/tp
synced 2026-08-14 20:43:32 -04:00
85ad8b190d
daBaseNpc_c::setBckAnm and J3DAnmTransform* daBaseNpc_c daBaseNpc_c::setBtpAnm daBaseNpc_c::attnSttsOn daBaseNpc_c::orderEvent daBaseNpc_c::setEnvTevColor daBaseNpc_c::setRoomNo daBaseNpc_c::checkEndAnm attempt CheckCreateHeap daNpcF_addIdx daNpcF_subIdx daNpcF_incIdx daNpcF_decIdx daNpcF_ActorMngr_c::initialize() daNpcF_ActorMngr_c::entry cleanup daNpcF_ActorMngr_c::entry daNpcF_ActorMngr_c::remove daNpcF_ActorMngr_c::getActorP daNpcF_MatAnm_c::calc attempt daNpcF_SPCurve_c::initialize minor fixes daNpcF_Path_c::initialize daNpcF_Path_c::setPathInfo daNpcF_Path_c::chkPassed daNpcF_Path_c::reverse daNpcF_Path_c::setNextIdx daNpcF_Path_c::getNextIdx daNpcF_Path_c::getBeforeIdx daNpcF_Path_c::getBeforePos daNpcF_Path_c::getNextPos daNpcT_MatAnm_c::initialize daNpcT_MatAnm_c::calc daNpcT_addIdx daNpcT_subIdx daNpcT_decIdx daNpcT_Path_c::hermite daNpcT_Path_c::initialize daNpcT_Path_c::setPathInfo attempt daNpcT_Path_c::setNextPathInfo daNpcT_Path_c::reverse daNpcT_Path_c::setNextIdx daNpcT_Path_c::getDstPos attempt daNpcT_DmgStagger_c::setParam Add FLOAT_LABEL where possible fopEn_enemy / fix e_wb move jasper's jsystem work over d_attention / d_demo / d_lib work remove asm clean up dolphin files / work on some rels (#212) * d_a_alldie / d_a_tboxSw / d_a_tag_gstart / d_a_tag_hstop * dolphin OS work / cleanup * dolphin GX work / cleanup * finish changing dolphin files to C * more files into C * match rest of MSL_C math functions * more dolphin files converted to C * remove asm * d_bg_w work * remove asm * d_a_alink work / kytag14 initial changes to d_a_e_yc checkpoint until virtual destructor issue is solved daNpcF_Lookat_c::adjustMoveDisAngle daBaseNpc_c::setMtx daBaseNpc_moveBgActor_c::daBaseNpc_moveBgActor_c() daNpcT_c::ctrlFaceMotion daNpcT_c::ctrlMsgAnm attempt daNpcT_c::initTalk daNpcF_clearMessageTmpBit daNpcF_getDistTableIdx daNpcF_offTmpBit daNpcF_onTmpBit daNpcF_chkTmpBit daNpcF_onEvtBit daNpcF_chkEvtBit daNpcF_c::getDistTableIdx daNpcF_chkPointInArea daNpcF_chkDoBtnEqSpeak daNpcF_getPlayerInfoFromPlayerList attempt daNpcF_pntVsLineSegmentLengthSquare2D daNpcF_c::chkPointInArea daNpcF_c::chkPointInArea daNpcF_c::getAttentionPos daNpcT_chkTmpBit daNpcT_offTmpBit daNpcT_onTmpBit daNpcT_chkEvtBit daNpcT_offEvtBit daNpcT_onEvtBit daNpcT_chkDoBtnIsSpeak daNpcT_getDistTableIdx daBaseNpc_acMngr_c::entry daNpcF_c::initTalk undo override
59 lines
1.7 KiB
C
59 lines
1.7 KiB
C
/* @(#)s_ldexp.c 1.2 95/01/04 */
|
|
/* $Id: s_ldexp.c,v 1.3.14.1 2002/01/31 15:24:14 ceciliar Exp $ */
|
|
/*
|
|
* ====================================================
|
|
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
|
*
|
|
* Developed at SunPro, a Sun Microsystems, Inc. business.
|
|
* Permission to use, copy, modify, and distribute this
|
|
* software is freely granted, provided that this notice
|
|
* is preserved.
|
|
* ====================================================
|
|
*/
|
|
|
|
#include "fdlibm.h"
|
|
#include "MSL_C/math.h" /* for isfinite macro */
|
|
static const double
|
|
|
|
two54
|
|
= 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
|
|
twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */
|
|
big = 1.0e+300, tiny = 1.0e-300;
|
|
|
|
double ldexp(double x, int n)
|
|
{
|
|
s32 k, hx, lx; /*- cc 020130 -*/
|
|
if (!isfinite(x) || x == 0.0)
|
|
return x;
|
|
|
|
hx = __HI(x);
|
|
lx = __LO(x);
|
|
k = (hx & 0x7ff00000) >> 20; /* extract exponent */
|
|
if (k == 0) { /* 0 or subnormal x */
|
|
if ((lx | (hx & 0x7fffffff)) == 0)
|
|
return x; /* +-0 */
|
|
x *= two54;
|
|
hx = __HI(x);
|
|
k = ((hx & 0x7ff00000) >> 20) - 54;
|
|
if (n < -50000)
|
|
return tiny * x; /*underflow*/
|
|
}
|
|
if (k == 0x7ff)
|
|
return x + x; /* NaN or Inf */
|
|
k = k + n;
|
|
if (k > 0x7fe)
|
|
return big * copysign(big, x); /* overflow */
|
|
if (k > 0) /* normal result */
|
|
{
|
|
__HI(x) = (hx & 0x800fffff) | (k << 20);
|
|
return x;
|
|
}
|
|
if (k <= -54)
|
|
if (n > 50000) /* in case integer overflow in n+k */
|
|
return big * copysign(big, x); /*overflow*/
|
|
else
|
|
return tiny * copysign(tiny, x); /*underflow*/
|
|
k += 54; /* subnormal result */
|
|
__HI(x) = (hx & 0x800fffff) | (k << 20);
|
|
return x * twom54;
|
|
} |