Last change
on this file since 17869 was
17303,
checked in by gkronber, 5 years ago
|
#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 size:
1.5 KB
|
Rev | Line | |
---|
[17295] | 1 | namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
|
---|
| 2 | public static class Algebraic {
|
---|
| 3 | public static T Abs<T>(this T a) where T : IAlgebraicType<T> { a.AssignAbs(a.Clone()); return a; }
|
---|
| 4 | public static T Neg<T>(this T a) where T : IAlgebraicType<T> { a.AssignNeg(a.Clone()); return a; }
|
---|
| 5 | public static T Inv<T>(this T a) where T : IAlgebraicType<T> { a.AssignInv(a.Clone()); return a; }
|
---|
| 6 | public static T Log<T>(this T a) where T : IAlgebraicType<T> { a.AssignLog(a.Clone()); return a; }
|
---|
| 7 | public static T Exp<T>(this T a) where T : IAlgebraicType<T> { a.AssignExp(a.Clone()); return a; }
|
---|
| 8 | public static T Sin<T>(this T a) where T : IAlgebraicType<T> { a.AssignSin(a.Clone()); return a; }
|
---|
| 9 | public static T Cos<T>(this T a) where T : IAlgebraicType<T> { a.AssignCos(a.Clone()); return a; }
|
---|
| 10 | public static T Sgn<T>(this T a) where T : IAlgebraicType<T> { a.AssignSgn(a.Clone()); return a; }
|
---|
| 11 | public static T IntPower<T>(this T a, int p) where T : IAlgebraicType<T> { a.AssignIntPower(a.Clone(), p); return a; }
|
---|
| 12 | public static T IntRoot<T>(this T a, int r) where T : IAlgebraicType<T> { a.AssignIntRoot(a.Clone(), r); return a; }
|
---|
| 13 |
|
---|
| 14 | // public static T Max<T>(T a, T b) where T : IAlgebraicType<T> {
|
---|
| 15 | // // ((a + b) + abs(b - a)) / 2
|
---|
| 16 | // return a.Clone().Add(b).Add(b.Clone().Sub(a).Abs()).Scale(1.0 / 2.0);
|
---|
| 17 | // }
|
---|
| 18 | // public static T Min<T>(T a, T b) where T : IAlgebraicType<T> {
|
---|
| 19 | // // ((a + b) - abs(a - b)) / 2
|
---|
| 20 | // return a.Clone().Add(b).Sub(a.Clone().Sub(b).Abs()).Scale(1.0 / 2.0);
|
---|
| 21 | // }
|
---|
| 22 | }
|
---|
| 23 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.