예제 #1
0
파일: ExpOp.java 프로젝트: TU-Berlin/Mumie
  /** Implements <i>(exp(f(x)))' = exp(f(x)) * f'(x)</i>. */
  public OpNode getDerivative(String variable) {
    if (getMaxAbsPowerOfVariable(variable) == 0) return new NumberOp(m_numberClass, 0);

    OpNode unchangedExpOp = new ExpOp(m_numberClass);
    OpNode derivedChild = m_children[0].getDerivative(variable);
    unchangedExpOp.setChildren(new OpNode[] {(OpNode) m_children[0].clone()});
    MultOp derivedExpOp = new MultOp(m_numberClass);
    derivedExpOp.setChildren(new OpNode[] {unchangedExpOp, derivedChild});
    return deriveNode(derivedExpOp);
  }
예제 #2
0
파일: AsinOp.java 프로젝트: TU-Berlin/Mumie
 public RelNode getNodeDefinedRel(OpNode operand) {
   return new AndRel(
       new RelNode[] {
         new SimpleRel(new Operation((OpNode) operand.clone()), "-1", Relation.GREATER_OR_EQUAL),
         new SimpleRel(new Operation((OpNode) operand.clone()), "1", Relation.LESS_OR_EQUAL)
       });
 }
예제 #3
0
파일: AsinOp.java 프로젝트: TU-Berlin/Mumie
 public RelNode getZeroRel(OpNode operand) {
   return new SimpleRel(new Operation((OpNode) operand.clone()), Relation.EQUAL);
 }
예제 #4
0
파일: ReOp.java 프로젝트: TU-Berlin/Mumie
 public RelNode getZeroRel(OpNode operand) {
   return operand.getZeroRel();
 }
예제 #5
0
파일: ReOp.java 프로젝트: TU-Berlin/Mumie
 public RelNode getMonotonicIncreasingRel(OpNode operand) {
   return operand.getMonotonicIncreasingRel();
 }