acosf.c 873 Bytes
/*
=============================================================================
        Copyright (C) 1997-1999 NINTENDO Co.,Ltd.
        
        $RCSfile: acosf.c,v $
        $Revision: 1.1.1.1 $
        $Date: 2002/10/30 02:07:09 $
=============================================================================
関数名:acosf
-----------------------------------------------------------------------------
書式:  #include <math.h>
        float acosf(float x)
引数:  x (-1〜1の範囲)
戻り値:アークコサイン(0〜πの範囲)
説明:  引数 x のアークコサインを求める。
-----------------------------------------------------------------------------
*/
#include "math.h"

float acosf(float x)
{
    float   z;

    if (fabsf(x)>1) return FVAL_ZERO;
    z = _nsqrtf(1-x*x);
    if (z != 0) return FVAL_PI/2-atan2f(x,z);
    if (x>0) return FVAL_ZERO;
    else return FVAL_PI;
}