Class TrigFunction

  • All Implemented Interfaces:
    java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

    public class TrigFunction
    extends Transformer

    Produce an output token on each firing with a value that is equal to the specified trigonometric function of the input. The input and output types are DoubleToken. The functions are exactly those in the java.lang.Math class. They are:

    • acos: The arc cosine of an angle. The returned value is between 0.0 an pi. If the absolute value of the argument is greater than one or if the argument is NaN, then the returned value is NaN.
    • asin: The arc sine of an angle. The returned value is between -pi/2 through pi/2. If the absolute value of the argument is greater than one or if the argument is NaN, then the returned value is NaN. If the argument is positive zero, then the returned value is positive zero. If the argument is negative zero, then the returned value is negative zero.
    • atan: The arc tangent of an angle. The returned value is between -pi/2 through pi/2. If the argument is NaN, then the returned value is NaN. If the argument is positive zero, then the returned value is positive zero. If the argument is negative zero, then the returned value is negative zero.
    • cos: The trigonometric cosine of an angle. If the argument is an infinity or NaN, then the returned value is NaN.
    • sin: The trigonometric sine of an angle. If the argument is an infinity or NaN, then the returned value is NaN.
    • tan: The trigonometric tangent of an angle. If the argument is an infinity or NaN, then the returned value is NaN. If the argument is positive zero, then the returned value is positive zero. If the argument is negative zero, then the returned value is negative zero.

    The following functions in java.lang.Math are implemented elsewhere:

    • abs: AbsoluteValue actor.
    • atan2: CartesianToPolar actor.
    • ceil: Round actor
    • exp: MathFunction actor.
    • floor: Round actor
    • remainder: MathFunction actor.
    • log: MathFunction actor.
    • max: Maximum actor.
    • min: Minimum actor.
    • round: Round actor.
    • sqrt: MathFunction actor.
    • toDegrees: Scale actor (with factor 180.0/PI).
    • toRadians: Scale actor (with factor PI/180.0).
    Since:
    Ptolemy II 1.0
    Version:
    $Id$
    Author:
    Edward A. Lee
    See Also:
    CartesianToPolar, AbsoluteValue, UnaryMathFunction, Scale
    Pt.AcceptedRating:
    Yellow (pwhitake)
    Pt.ProposedRating:
    Yellow (eal)
    • Field Detail

      • function

        public StringParameter function
        The function to compute. This is a string-valued attribute that defaults to "sin".
    • Method Detail

      • iterate

        public int iterate​(int count)
                    throws IllegalActionException
        Invoke a specified number of iterations of this actor. Each iteration computes the trigonometric function specified by the function attribute on a single token. An invocation of this method therefore applies the function to count successive input tokens.

        This method should be called instead of the usual prefire(), fire(), postfire() methods when this actor is used in a domain that supports vectorized actors. This leads to more efficient execution.

        Specified by:
        iterate in interface Executable
        Overrides:
        iterate in class AtomicActor<TypedIOPort>
        Parameters:
        count - The number of iterations to perform.
        Returns:
        COMPLETED if the actor was successfully iterated the specified number of times. Otherwise, return NOT_READY, and do not consume any input tokens.
        Throws:
        IllegalActionException - If iterating cannot be performed.