## com.saxonica.functions.xpath3
Class TrigonometricFn

    java.lang.Object
      net.sf.saxon.lib.ExtensionFunctionDefinition
          com.saxonica.functions.xpath3.TrigonometricFn

All Implemented Interfaces:
  Serializable

Direct Known Subclasses:
  TrigonometricFn.AcosFn, TrigonometricFn.AsinFn, TrigonometricFn.AtanFn, TrigonometricFn.CosFn, TrigonometricFn.SinFn, TrigonometricFn.SqrtFn, TrigonometricFn.TanFn

    public abstract class TrigonometricFn

extends ExtensionFunctionDefinition

Abstract class providing functionality common to functions math:sin(), math:cos(), math:sqrt() etc; contains the concrete implementations of these functions as inner subclasses

See Also:
  Serialized Form

Nested Class Summary
`static class` `TrigonometricFn.AcosFn` Implement math:acos
`static class` `TrigonometricFn.AsinFn` Implement math:asin
`static class` `TrigonometricFn.AtanFn` Implement math:atan
`static class` `TrigonometricFn.CosFn` Implement math:cos
`static class` `TrigonometricFn.SinFn` Implement math:sin
`static class` `TrigonometricFn.SqrtFn` Implement math:sqrt
`static class` `TrigonometricFn.TanFn` Implement math:tan

Field Summary
`static String` `NAMESPACE`

Constructor Summary
`TrigonometricFn()`

Method Summary
`protected abstract double` `compute(double input)` The function that does the work, which must be implemented in subclasses
`SequenceType[]` `getArgumentTypes()` Get the required types for the arguments of this function.
`int` `getMaximumNumberOfArguments()` Get the maximum number of arguments allowed by the function.
`int` `getMinimumNumberOfArguments()` Get the minimum number of arguments required by the function
`SequenceType` `getResultType(SequenceType[] suppliedArgumentTypes)` Get the type of the result of the function
`ExtensionFunctionCall` `makeCallExpression()` Create a call on this function.
`boolean` `trustResultType()` Ask whether the result actually returned by the function can be trusted, or whether it should be checked against the declared type.

Methods inherited from class net.sf.saxon.lib.ExtensionFunctionDefinition
`dependsOnFocus, getCompilerForJava, getFunctionQName, hasSideEffects`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### NAMESPACE

    public static String NAMESPACE

Constructor Detail

### TrigonometricFn

    public TrigonometricFn()

Method Detail

### getMinimumNumberOfArguments

    public int getMinimumNumberOfArguments()

  Get the minimum number of arguments required by the function

  The default implementation returns the number of items in the result of calling `getArgumentTypes()`

  Overrides:
    `getMinimumNumberOfArguments` in class `ExtensionFunctionDefinition`
  Returns:
    the minimum number of arguments that must be supplied in a call to this function

### getMaximumNumberOfArguments

    public int getMaximumNumberOfArguments()

  Get the maximum number of arguments allowed by the function.

  The default implementation returns the value of `getMinimumNumberOfArguments()`

  Overrides:
    `getMaximumNumberOfArguments` in class `ExtensionFunctionDefinition`
  Returns:
    the maximum number of arguments that may be supplied in a call to this function

### trustResultType

    public boolean trustResultType()

  Ask whether the result actually returned by the function can be trusted, or whether it should be checked against the declared type.

  Overrides:
    `trustResultType` in class `ExtensionFunctionDefinition`
  Returns:
    true if the function implementation warrants that the value it returns will be an instance of the declared result type. The default value is false, in which case the result will be checked at run-time to ensure that it conforms to the declared type. If the value true is returned, but the function returns a value of the wrong type, the consequences are unpredictable.

### getArgumentTypes

    public SequenceType[] getArgumentTypes()

  Get the required types for the arguments of this function.

  This method must be implemented in all subtypes.

  Specified by:
    `getArgumentTypes` in class `ExtensionFunctionDefinition`
  Returns:
    the required types of the arguments, as defined by the function signature. Normally this should be an array of size `getMaximumNumberOfArguments()`; however for functions that allow a variable number of arguments, the array can be smaller than this, with the last entry in the array providing the required type for all the remaining arguments.

### getResultType

    public SequenceType getResultType(SequenceType[] suppliedArgumentTypes)

  Get the type of the result of the function

  This method must be implemented in all subtypes.

  Specified by:
    `getResultType` in class `ExtensionFunctionDefinition`
  Parameters:
    `suppliedArgumentTypes` - the static types of the supplied arguments to the function. This is provided so that a more precise result type can be returned in the common case where the type of the result depends on the types of the arguments.
  Returns:
    the return type of the function, as defined by its function signature

### compute

    protected abstract double compute(double input)

  The function that does the work, which must be implemented in subclasses

  Parameters:
    `input` - the input value
  Returns:
    the result

### makeCallExpression

    public ExtensionFunctionCall makeCallExpression()

  Create a call on this function. This method is called by the compiler when it identifies a function call that calls this function.

  Specified by:
    `makeCallExpression` in class `ExtensionFunctionDefinition`

Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.