public void Substraction() { FltInterval a = new FltInterval(-10, 5); FltInterval b = new FltInterval(-5, 10); Assert.AreEqual(new FltInterval(-20, 10), a - b); }
public void Addition() { FltInterval a = new FltInterval(-10, 5); FltInterval b = new FltInterval(-5, 10); Assert.AreEqual(new FltInterval(-15, 15), a + b); }
public void Addition() { FltInterval a = new FltInterval( -10, 5 ); FltInterval b = new FltInterval( -5, 10 ); Assert.AreEqual( new FltInterval( -15, 15 ), a + b ); }
public void Negate() { FltInterval a = new FltInterval(-10, 5); FltInterval b = new FltInterval(-5, 10); Assert.AreEqual(new FltInterval(-5, 10), -a); Assert.AreEqual(new FltInterval(-10, 5), -b); }
public void Union() { FltInterval a = new FltInterval(-100, 50); FltInterval b = new FltInterval(-50, 100); FltInterval c = a.Union(b); Assert.AreEqual(new FltInterval(-100, 100), c); }
public void ContainsInterval() { FltInterval a = new FltInterval(-100, 100); FltInterval b = new FltInterval(-50, 50); Assert.IsTrue(a.Contains(a)); Assert.IsTrue(a.Contains(b)); Assert.IsFalse(b.Contains(a)); }
public void ContainsInterval() { FltInterval a = new FltInterval( -100, 100 ); FltInterval b = new FltInterval( -50, 50 ); Assert.IsTrue( a.Contains( a ) ); Assert.IsTrue( a.Contains( b ) ); Assert.IsFalse( b.Contains( a ) ); }
public void ContainsValue() { FltInterval i = new FltInterval(-100, 100); Assert.IsFalse(i.Contains(-101)); Assert.IsTrue(i.Contains(-100)); Assert.IsTrue(i.Contains(0)); Assert.IsTrue(i.Contains(100)); Assert.IsFalse(i.Contains(101)); }
public void ContainsValue() { FltInterval i = new FltInterval( -100, 100 ); Assert.IsFalse( i.Contains( -101 ) ); Assert.IsTrue( i.Contains( -100 ) ); Assert.IsTrue( i.Contains( 0 ) ); Assert.IsTrue( i.Contains( 100 ) ); Assert.IsFalse( i.Contains( 101 ) ); }
public void Equals() { FltInterval i = new FltInterval(-100, 100); FltInterval a = new FltInterval(-100, 100); FltInterval b = new FltInterval(-99, 100); FltInterval c = new FltInterval(-100, 99); Assert.IsTrue(i.Equals(a)); Assert.IsFalse(i.Equals(b)); Assert.IsFalse(i.Equals(c)); }
public void ExpToLog() { for (int idx = 0; idx < 1000; ++idx) { FltInterval x = FltInterval.Random(1E6); FltInterval x1 = x.Exp(); FltInterval x2 = x1.Log(); Assert.IsTrue(x2.Contains(x)); } }
public override void UnboundDirect() { FltInterval horizon = new FltInterval(m_Solver.Horizon.Min, m_Solver.Horizon.Max); if (!m_Domain.Interval.Equals(horizon)) { m_Domain.Union(horizon); base.UnboundDirect(); } }
public void Equals() { FltInterval i = new FltInterval( -100, 100 ); FltInterval a = new FltInterval( -100, 100 ); FltInterval b = new FltInterval( -99, 100 ); FltInterval c = new FltInterval( -100, 99 ); Assert.IsTrue( i.Equals( a ) ); Assert.IsFalse( i.Equals( b ) ); Assert.IsFalse( i.Equals( c ) ); }
public void MulToDiv() { for (int idx = 0; idx < 1000; ++idx) { FltInterval x = FltInterval.Random(1E6); FltInterval y = FltInterval.Random(1E6); FltInterval c1 = x * y; FltInterval c2 = c1 / y; Assert.IsTrue(c2.Contains(x)); } }
public override void Update() { double sum_min = 0; double sum_max = 0; for (int i = 0; i < VarList.Count; ++i) { FltInterval intv = VarList[i].Domain.Interval; sum_min += intv.Min; sum_max += intv.Max; } Var0.Intersect(sum_min, sum_max); for (int idx = 0; idx < VarList.Count; ++idx) { FltVar var = VarList[idx]; double min = Var0.Min - (sum_max - var.Max); double max = Var0.Max - (sum_min - var.Min); if (min > var.Min || max < var.Max) { sum_min -= var.Min; sum_max -= var.Max; var.Intersect(min, max); if (var.Domain.IsEmpty()) { break; } sum_min += var.Min; sum_max += var.Max; Var0.Intersect(sum_min, sum_max); if (Var0.Domain.IsEmpty()) { break; } idx = -1; } } }
public void IntersectsWith() { FltInterval a0 = new FltInterval(-100, -51); FltInterval a = new FltInterval(-100, -50); FltInterval b = new FltInterval(-50, 50); FltInterval c = new FltInterval(50, 100); FltInterval c0 = new FltInterval(51, 100); Assert.IsFalse(a0.IntersectsWith(b)); Assert.IsFalse(b.IntersectsWith(a0)); Assert.IsFalse(b.IntersectsWith(c0)); Assert.IsFalse(c0.IntersectsWith(b)); Assert.IsTrue(a.IntersectsWith(b)); Assert.IsTrue(b.IntersectsWith(a)); Assert.IsTrue(b.IntersectsWith(c)); Assert.IsTrue(c.IntersectsWith(b)); }
public void Multiply() { FltInterval a = new FltInterval(-10, -5); FltInterval b = new FltInterval(-10, 5); FltInterval c = new FltInterval(-5, 10); FltInterval d = new FltInterval(5, 10); Assert.AreEqual(new FltInterval(25, 100), a * a); Assert.AreEqual(new FltInterval(-50, 100), a * b); Assert.AreEqual(new FltInterval(-100, 50), a * c); Assert.AreEqual(new FltInterval(-100, -25), a * d); Assert.AreEqual(new FltInterval(-50, 100), b * b); Assert.AreEqual(new FltInterval(-100, 50), b * c); Assert.AreEqual(new FltInterval(-100, 50), b * d); Assert.AreEqual(new FltInterval(-50, 100), c * c); Assert.AreEqual(new FltInterval(-50, 100), c * d); Assert.AreEqual(new FltInterval(25, 100), d * d); }
public void Substraction() { FltInterval a = new FltInterval( -10, 5 ); FltInterval b = new FltInterval( -5, 10 ); Assert.AreEqual( new FltInterval( -20, 10 ), a - b ); }
public void Negate() { FltInterval a = new FltInterval( -10, 5 ); FltInterval b = new FltInterval( -5, 10 ); Assert.AreEqual( new FltInterval( -5, 10 ), -a ); Assert.AreEqual( new FltInterval( -10, 5 ), -b ); }
public void Multiply() { FltInterval a = new FltInterval( -10, -5 ); FltInterval b = new FltInterval( -10, 5 ); FltInterval c = new FltInterval( -5, 10 ); FltInterval d = new FltInterval( 5, 10 ); Assert.AreEqual( new FltInterval( 25, 100 ), a * a ); Assert.AreEqual( new FltInterval( -50, 100 ), a * b ); Assert.AreEqual( new FltInterval( -100, 50 ), a * c ); Assert.AreEqual( new FltInterval( -100, -25 ), a * d ); Assert.AreEqual( new FltInterval( -50, 100 ), b * b ); Assert.AreEqual( new FltInterval( -100, 50 ), b * c ); Assert.AreEqual( new FltInterval( -100, 50 ), b * d ); Assert.AreEqual( new FltInterval( -50, 100 ), c * c ); Assert.AreEqual( new FltInterval( -50, 100 ), c * d ); Assert.AreEqual( new FltInterval( 25, 100 ), d * d ); }
public FltVarMatrix(Solver solver, int rowCount, int colCount, FltInterval interval) : this(solver, rowCount, colCount, new FltDomain(interval)) { }
public void Union( FltInterval interval ) { Update( m_Domain.Union( interval ) ); }
public override void UnboundDirect() { FltInterval horizon = new FltInterval( m_Solver.Horizon.Min, m_Solver.Horizon.Max ); if( !m_Domain.Interval.Equals( horizon ) ) { m_Domain.Union( horizon ); base.UnboundDirect(); } }
private void AssertEqual( FltDomain lhs, FltInterval[] rhs ) { int index = 0; foreach( FltInterval interval in lhs ) { Assert.AreEqual( interval, rhs[ index++ ] ); } }
public void Difference( FltInterval interval ) { Update( m_Domain.Difference( interval ) ); }
public FltVar( Solver solver, FltInterval interval, string name ) : this(solver, new FltDomain( interval ), name) { }
public void Intersect(FltInterval interval) { Update(m_Domain.Intersect(interval)); }
public FltVar(Solver solver, FltInterval interval, string name) : this(solver, new FltDomain(interval), name) { }
public void Union() { FltInterval a = new FltInterval( -100, 50 ); FltInterval b = new FltInterval( -50, 100 ); FltInterval c = a.Union( b ); Assert.AreEqual( new FltInterval( -100, 100 ), c ); }
public void Intersect( FltInterval interval ) { Update( m_Domain.Intersect( interval ) ); }
public void Union(FltInterval interval) { Update(m_Domain.Union(interval)); }
public void Difference(FltInterval interval) { Update(m_Domain.Difference(interval)); }
public void IntersectsWith() { FltInterval a0 = new FltInterval( -100, -51 ); FltInterval a = new FltInterval( -100, -50 ); FltInterval b = new FltInterval( -50, 50 ); FltInterval c = new FltInterval( 50, 100 ); FltInterval c0 = new FltInterval( 51, 100 ); Assert.IsFalse( a0.IntersectsWith( b ) ); Assert.IsFalse( b.IntersectsWith( a0 ) ); Assert.IsFalse( b.IntersectsWith( c0 ) ); Assert.IsFalse( c0.IntersectsWith( b ) ); Assert.IsTrue( a.IntersectsWith( b ) ); Assert.IsTrue( b.IntersectsWith( a ) ); Assert.IsTrue( b.IntersectsWith( c ) ); Assert.IsTrue( c.IntersectsWith( b ) ); }
public FltVarMatrix( Solver solver, int rowCount, int colCount, FltInterval interval ) : this(solver, rowCount, colCount, new FltDomain( interval )) { }