asin.java

来自「JAVA 数学程序库 提供常规的数值计算程序包」· Java 代码 · 共 67 行

JAVA
67
字号
package jmathlib.toolbox.trigonometric;

import jmathlib.core.functions.ExternalElementWiseFunction;
import jmathlib.toolbox.jmathlib.matrix.log;
import jmathlib.toolbox.jmathlib.matrix.sqrt;

public class asin extends ExternalElementWiseFunction
{
    
    public asin()
    {
        name = "asin";
    }
    
    /**Calculates the arcsine of a complex number
     *  @param arg = the value as an array of double
     *  @return the result as an array of double
     */ 
    public double[] evaluateValue(double[] arg)
    {
        double result[] = new double[2];
        //  asin(z)  =  -i * log(i*z + Sqrt(1 - z*z))
        double re =  arg[REAL];
        double im =  arg[IMAG];
        
        // _1:      one.Minus(z.Times(z)) ...
        result[REAL]       =  1.0 - ( (re*re) - (im*im) );
        result[IMAG]  =  0.0 - ( (re*im) + (im*re) );

        // result:  _1.Sqrt() ...
        sqrt s= new sqrt();
        result = s.evaluateValue(result);

        // _1:      z.Times(i) ...
        // result:  _1.Plus(result) ...
        result[REAL]       =   result[REAL] - im;
        result[IMAG]  = result[IMAG] +  re;

        // _1:      result.log() ...
        log logFunc = new log();
        result = logFunc.evaluateValue(result);

        double temp     = result[IMAG];
        result[IMAG]  =  -result[REAL];
        result[REAL]       =  temp;

        return result;
    }
}

/*
@GROUP
trigonometric
@SYNTAX
angle=asin(value)
@DOC
Returns the arc sine of the first operand.
@EXAMPLES
<programlisting>
asin(1) = 1.5707963267948966
asin(0) = 0
</programlisting>
@SEE
sin, asinh, cos, acos, acosh
*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?