All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jscl.math.function.Trigonometric Maven / Gradle / Ivy

There is a newer version: 1.0.11
Show newest version
package jscl.math.function;

import jscl.AngleUnit;
import jscl.JsclMathEngine;
import jscl.math.Generic;
import jscl.math.NotIntegrableException;
import jscl.math.Variable;
import jscl.math.polynomial.Polynomial;
import jscl.text.msg.Messages;

import javax.annotation.Nonnull;

public abstract class Trigonometric extends Function {

	public Trigonometric(String name, Generic parameter[]) {
		super(name, parameter);
	}

	public Generic antiDerivative(@Nonnull Variable variable) throws NotIntegrableException {
		if (JsclMathEngine.getInstance().getAngleUnits() != AngleUnit.rad) {
			throw new NotIntegrableException(Messages.msg_20, getName());
		}

		final Generic parameter = parameters[0];
		if (parameter.isPolynomial(variable)) {
			final Polynomial polynomial = Polynomial.factory(variable).valueOf(parameter);
			if (polynomial.degree() == 1) {
				final Generic elements[] = polynomial.elements();
				return new Inverse(elements[1]).selfExpand().multiply(antiDerivative(0));
			} else {
				throw new NotIntegrableException(this);
			}
		} else {
			throw new NotIntegrableException(this);
		}
	}

	public Generic identity() {
//      Generic a[]=parameter[0].sumValue();
//      if(a.length>1) {
//          Generic s=JsclInteger.valueOf(0);
//          for(int i=1;i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy