Package jscicalc.pobject

Source Code of jscicalc.pobject.Tan

/** @file
* Copyright (C) 2004–5 John D Lamb (J.D.Lamb@btinternet.com)
* Copyright (C) 2007, 2008 John D Lamb (J.D.Lamb@btinternet.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

package jscicalc.pobject;
import jscicalc.AngleType;
import jscicalc.OObject;
import jscicalc.complex.Complex;

/**
* Tangent operation.
*
* @author J. D. Lamb
* @version $Revision: 1.6 $
*/
public class Tan extends Trig {
    /**
     * Constructor. Sets a tooltip and shortcut.
     */
    public Tan( AngleType angleType ){
  super( angleType );
  ftooltip = "tangent function";
  fshortcut = 't';
    }

    /**
     * Tangent of x.
     * @param x The value (right of symbol)
     * @return The result of the operation
     */
    public double function( double x ){
  return Math.tan( x * scale );
    }

    /**
     * Tangent of x.
     * @param x The value (right of symbol)
     * @return The result of the operation
     */
    public OObject function( OObject x ){
  if( x instanceof Complex ){
      Complex c = (Complex)x;
      if( scale != 1 && StrictMath.abs( c.imaginary() ) > 1e-6 )
    throw new RuntimeException( "Error" );
      return c.scale( scale ).tan();
  } else {
      return x.tan( angleType );
  }
    }

    public String[] name_array(){
  return fname;
    }
   
    public static void main( String args[] ){
  PObject o = new Tan( AngleType.DEGREES );
  StringBuilder s = new StringBuilder( "<html>" );
  s.append( o.name() );
  s.append( "</html>" );
  javax.swing.JOptionPane.showMessageDialog( null, s.toString() );
    }
   
    private final static String[] fname = { "t", "a", "n", " " };
}
TOP

Related Classes of jscicalc.pobject.Tan

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.