001/*
002 * $Id$
003 */
004
005package edu.jas.ps;
006
007
008import java.util.List;
009
010import edu.jas.poly.ExpVector;
011import edu.jas.structure.RingElem;
012
013
014/**
015 * Adapter for functions capable for Taylor series expansion.
016 * @param <C> ring element type
017 * @author Heinz Kredel
018 */
019
020public abstract class TaylorFunctionAdapter<C extends RingElem<C>> implements TaylorFunction<C> {
021
022
023    /**
024     * Get the factorial coefficient.
025     * @return factorial coefficient.
026     */
027    public long getFacul() {
028        return 1L;
029    }
030
031
032    /**
033     * Test if this is zero.
034     * @return true if this is 0, else false.
035     */
036    public boolean isZERO() {
037        throw new UnsupportedOperationException("not implemented");
038    }
039
040
041    /**
042     * Derivative.
043     * @return derivative of this.
044     */
045    public TaylorFunction<C> derivative() {
046        throw new UnsupportedOperationException("not implemented");
047    }
048
049
050    /**
051     * Multi-partial derivative.
052     * @param i exponent vector.
053     * @return partial derivative of this with respect to all variables.
054     */
055    public TaylorFunction<C> derivative(ExpVector i) {
056        throw new UnsupportedOperationException("not implemented");
057    }
058
059
060    /**
061     * Evaluate.
062     * @param a element.
063     * @return this(a).
064     */
065    public C evaluate(C a) {
066        throw new UnsupportedOperationException("not implemented");
067    }
068
069
070    /**
071     * Evaluate at a tuple of elements.
072     * @param a tuple of elements.
073     * @return this(a).
074     */
075    public C evaluate(List<C> a) {
076        throw new UnsupportedOperationException("not implemented");
077    }
078
079}