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}