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
|
Line | |
---|
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.