コード例 #1
0
        public Vector2(OVector v)
        {
            ArgAssert.Equal(v.Dimension, "v.Dimension", 2, "2");

            _x = v[0];
            _y = v[1];
        }
コード例 #2
0
        public Vector2i(OVector v)
        {
            ArgAssert.Equal(v.Dimension, "v.Dimension", 2, "2");

            _x = ((int)Math.Round(v[0]));
            _y = ((int)Math.Round(v[1]));
        }
コード例 #3
0
        public StochasticVector(OVector expectation, OSymmetricMatrix covariance)
        {
            ArgAssert.Equal(expectation.Dimension, "expectation.Dimension", covariance.Dimension, "covariance.Dimension");

            _expectation = expectation;
            _covariance  = covariance;
        }
コード例 #4
0
        public Vector2f(OVector v)
        {
            ArgAssert.Equal(v.Dimension, "v.Dimension", 2, "2");

            _x = ((float)v[0]);
            _y = ((float)v[1]);
        }
コード例 #5
0
        private OVector ExpectedFiberResult(OVector baseResult)
        {
            var velocity1 = _gain * _basePoint + _offset;
            var velocity2 = _gain * baseResult + _offset;

            return(_fiberPoint + (_time / 2) * (velocity1 + velocity2));
        }
コード例 #6
0
        public Vector3i(OVector v)
        {
            ArgAssert.Equal(v.Dimension, "v.Dimension", 3, "3");

            _x = ((int)Math.Round(v[0]));
            _y = ((int)Math.Round(v[1]));
            _z = ((int)Math.Round(v[2]));
        }
コード例 #7
0
        public Vector3f(OVector v)
        {
            ArgAssert.Equal(v.Dimension, "v.Dimension", 3, "3");

            _x = ((float)v[0]);
            _y = ((float)v[1]);
            _z = ((float)v[2]);
        }
コード例 #8
0
        public Vector3(OVector v)
        {
            ArgAssert.Equal(v.Dimension, "v.Dimension", 3, "3");

            _x = v[0];
            _y = v[1];
            _z = v[2];
        }
コード例 #9
0
        public Vector4f(OVector v)
        {
            ArgAssert.Equal(v.Dimension, "v.Dimension", 4, "4");

            _x = ((float)v[0]);
            _y = ((float)v[1]);
            _z = ((float)v[2]);
            _t = ((float)v[3]);
        }
コード例 #10
0
        public Vector4L(OVector v)
        {
            ArgAssert.Equal(v.Dimension, "v.Dimension", 4, "4");

            _x = ((long)Math.Round(v[0]));
            _y = ((long)Math.Round(v[1]));
            _z = ((long)Math.Round(v[2]));
            _t = ((long)Math.Round(v[3]));
        }
コード例 #11
0
        private void ExpectVectorsAreAlmostEqual(OVector v, OVector w)
        {
            Expect(v.Dimension, Is.EqualTo(w.Dimension));

            for (int i = 0; i < v.Dimension; i++)
            {
                Expect(v[i], Is.EqualTo(w[i]).Within(_tolerance));
            }
        }
コード例 #12
0
        public Vector4(OVector v)
        {
            ArgAssert.Equal(v.Dimension, "v.Dimension", 4, "4");

            _x = v[0];
            _y = v[1];
            _z = v[2];
            _t = v[3];
        }
コード例 #13
0
        public AffineStochasticTransformation(OMatrix matrix, OVector freeTerm, OSymmetricMatrix covariance)
        {
            _domain   = new AffineSpace(matrix.ColumnCount);
            _codomain = new AffineSpace(matrix.RowCount);

            _matrix     = matrix;
            _freeTerm   = freeTerm;
            _covariance = covariance;
        }
コード例 #14
0
        public IManifoldPoint Translate(IManifoldPoint point, OVector tangentVector)
        {
            var nativePoint = (Point)point;

            var answerFactors = new List <IManifoldPoint>(_factors.Count);

            for (int i = 0; i < _factors.Count; i++)
            {
                answerFactors.Add(_factors[i].Translate(nativePoint.Factors[i], tangentVector.Subvector(_indices[i], _factors[i].Dimension)));
            }

            return(new Point(answerFactors.AsReadOnlyList()));
        }
コード例 #15
0
        public AffineIntegralStochasticProcess(IStochasticProcess baseProcess, IManifold fiber, OMatrix gain, OVector offset)
            : base(baseProcess, fiber)
        {
            if (!(baseProcess.StateSpace is AffineSpace))
            {
                throw new ArgumentException("Expected process in affine space", "baseProcess");
            }

            ArgAssert.Equal(baseProcess.StateSpace.Dimension, "baseProcess.StateSpace.Dimension", gain.ColumnCount, "gain.ColumnCount");
            ArgAssert.Equal(fiber.Dimension, "fiber.Dimension", gain.RowCount, "gain.RowCount");
            ArgAssert.Equal(offset.Dimension, "offset.Dimension", gain.RowCount, "gain.RowCount");

            _gain   = gain;
            _offset = offset;
        }
コード例 #16
0
 public OVector ApplyTransposed(OVector vector)
 {
     return(new OVector(Value.ApplyTransposed(vector.Value)));
 }
コード例 #17
0
 public IManifoldPoint Translate(IManifoldPoint point, OVector tangentVector)
 {
     return((Rotation3)point * new Rotation3((Vector3)tangentVector));
 }
コード例 #18
0
        private IManifold MockManifold(int dimension, IManifoldPoint untranslatedPoint, OVector translationVector, IManifoldPoint translatedPoint)
        {
            var answer = new Mock <IManifold>();

            answer.Setup(man => man.Dimension).Returns(dimension);
            answer.Setup(man => man.Translate(untranslatedPoint, translationVector)).Returns(translatedPoint);
            answer.Setup(man => man.GetTranslation(translatedPoint, untranslatedPoint)).Returns(translationVector);

            return(answer.Object);
        }
コード例 #19
0
        public IManifoldPoint Translate(IManifoldPoint point, OVector tangentVector)
        {
            ArgAssert.Equal(tangentVector.Dimension, "tangentVector.Dimension", 1, "1");

            return((Rotation2)point * new Rotation2(tangentVector[0]));
        }
コード例 #20
0
 public IManifoldPoint Translate(IManifoldPoint point, OVector tangentVector)
 {
     return((OVector)point + tangentVector);
 }