Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/03/19 12:30:19 (5 years ago)
Author:
gkronber
Message:

#2994 continued refactoring and extended unit tests. Interval calculation still fails for some edge cases (mainly for undefined behaviour). VectorEvaluator and VectorAutoDiffEvaluator produce the same results as the LinearInterpreter. TODO: check gradient calculation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2994-AutoDiffForIntervals/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interpreter/MultivariateDual.cs

    r17297 r17303  
    1717    public AlgebraicSparseVector<object, V> Gradient => dv; // <key,value> partial derivative identified via the key
    1818
     19
    1920    private MultivariateDual(MultivariateDual<V> orig) { this.v = orig.v.Clone(); this.dv = orig.dv.Clone(); }
     21
     22    /// <summary>
     23    /// Constructor which sets value and derivative to zero
     24    /// </summary>
     25    public MultivariateDual() {
     26      v = new V(); // assumed to be zero
     27      dv = new AlgebraicSparseVector<object, V>();
     28    }
    2029
    2130    /// <summary>
     
    8392    public MultivariateDual<V> AssignAbs(MultivariateDual<V> a) { v.AssignAbs(a.v); dv.Assign(a.dv).Scale(a.v.Clone().Sgn()); return this; }      // abs(f(x))' = f(x)*f'(x) / |f(x)|  doesn't work for intervals     
    8493    public MultivariateDual<V> AssignSgn(MultivariateDual<V> a) { v.AssignSgn(a.v); dv = a.dv.Zero; return this; } // sign(f(x))' = 0;     
    85 
    86     public MultivariateDual<V> AssignMin(MultivariateDual<V> other) {
    87       throw new NotImplementedException();
    88     }
    89 
    90     public MultivariateDual<V> AssignMax(MultivariateDual<V> other) {
    91       throw new NotImplementedException();
    92     }
    9394  }
    9495}
Note: See TracChangeset for help on using the changeset viewer.