Example #1
0
 public void Constructors()
 {
     {
         var v = new lvec2(2L);
         Assert.AreEqual(2L, v.x);
         Assert.AreEqual(2L, v.y);
     }
     {
         var v = new lvec2(1, 9L);
         Assert.AreEqual(1, v.x);
         Assert.AreEqual(9L, v.y);
     }
     {
         var v = new lvec2(new lvec2(3L, -2L));
         Assert.AreEqual(3L, v.x);
         Assert.AreEqual(-2L, v.y);
     }
     {
         var v = new lvec2(new lvec3(-8L, 1, -9L));
         Assert.AreEqual(-8L, v.x);
         Assert.AreEqual(1, v.y);
     }
     {
         var v = new lvec2(new lvec4(6L, 6L, -9L, -4L));
         Assert.AreEqual(6L, v.x);
         Assert.AreEqual(6L, v.y);
     }
 }
Example #2
0
 /// <summary>
 /// Constructs this matrix from a series of column vectors. Non-overwritten fields are from an Identity matrix.
 /// </summary>
 public lmat2(lvec2 c0, lvec2 c1)
 {
     this.m00 = c0.x;
     this.m01 = c0.y;
     this.m10 = c1.x;
     this.m11 = c1.y;
 }
Example #3
0
        public void PropertyValues()
        {
            var v    = new lvec2(9L, 9L);
            var vals = v.Values;

            Assert.AreEqual(9L, vals[0]);
            Assert.AreEqual(9L, vals[1]);
            Assert.That(vals.SequenceEqual(v.ToArray()));
        }
Example #4
0
 /// <summary>
 /// Constructs this matrix from a series of column vectors. Non-overwritten fields are from an Identity matrix.
 /// </summary>
 public lmat2x3(lvec2 c0, lvec2 c1)
 {
     this.m00 = c0.x;
     this.m01 = c0.y;
     this.m02 = 0;
     this.m10 = c1.x;
     this.m11 = c1.y;
     this.m12 = 0;
 }
Example #5
0
 /// <summary>
 /// Constructs this matrix from a series of column vectors. Non-overwritten fields are from an Identity matrix.
 /// </summary>
 public lmat3x2(lvec2 c0, lvec2 c1, lvec2 c2)
 {
     this.m00 = c0.x;
     this.m01 = c0.y;
     this.m10 = c1.x;
     this.m11 = c1.y;
     this.m20 = c2.x;
     this.m21 = c2.y;
 }
Example #6
0
 /// <summary>
 /// Constructs this matrix from a series of column vectors. Non-overwritten fields are from an Identity matrix.
 /// </summary>
 public lmat3x2(lvec2 c0, lvec2 c1)
 {
     this.m00 = c0.x;
     this.m01 = c0.y;
     this.m10 = c1.x;
     this.m11 = c1.y;
     this.m20 = 0;
     this.m21 = 0;
 }
Example #7
0
        public void Indexer()
        {
            var v = new lvec2(2L, -2L);

            Assert.AreEqual(2L, v[0]);
            Assert.AreEqual(-2L, v[1]);

            Assert.Throws <ArgumentOutOfRangeException>(() => { var s = v[-2147483648]; });
            Assert.Throws <ArgumentOutOfRangeException>(() => { v[-2147483648] = 0; });
            Assert.Throws <ArgumentOutOfRangeException>(() => { var s = v[-1]; });
            Assert.Throws <ArgumentOutOfRangeException>(() => { v[-1] = 0; });
            Assert.Throws <ArgumentOutOfRangeException>(() => { var s = v[2]; });
            Assert.Throws <ArgumentOutOfRangeException>(() => { v[2] = 0; });
            Assert.Throws <ArgumentOutOfRangeException>(() => { var s = v[2147483647]; });
            Assert.Throws <ArgumentOutOfRangeException>(() => { v[2147483647] = 0; });
            Assert.Throws <ArgumentOutOfRangeException>(() => { var s = v[5]; });
            Assert.Throws <ArgumentOutOfRangeException>(() => { v[5] = 0; });

            v[1] = 0;
            Assert.AreEqual(0, v[1]);
            v[0] = 1;
            Assert.AreEqual(1, v[0]);
            v[0] = 2L;
            Assert.AreEqual(2L, v[0]);
            v[0] = 3L;
            Assert.AreEqual(3L, v[0]);
            v[1] = 4L;
            Assert.AreEqual(4L, v[1]);
            v[0] = 5L;
            Assert.AreEqual(5L, v[0]);
            v[1] = 6L;
            Assert.AreEqual(6L, v[1]);
            v[0] = 7L;
            Assert.AreEqual(7L, v[0]);
            v[1] = 8L;
            Assert.AreEqual(8L, v[1]);
            v[0] = 9L;
            Assert.AreEqual(9L, v[0]);
            v[0] = -1L;
            Assert.AreEqual(-1L, v[0]);
            v[0] = -2L;
            Assert.AreEqual(-2L, v[0]);
            v[1] = -3L;
            Assert.AreEqual(-3L, v[1]);
            v[1] = -4L;
            Assert.AreEqual(-4L, v[1]);
            v[1] = -5L;
            Assert.AreEqual(-5L, v[1]);
            v[0] = -6L;
            Assert.AreEqual(-6L, v[0]);
            v[0] = -7L;
            Assert.AreEqual(-7L, v[0]);
            v[1] = -8L;
            Assert.AreEqual(-8L, v[1]);
            v[1] = -9L;
            Assert.AreEqual(-9L, v[1]);
        }
Example #8
0
 /// <summary>
 /// Constructs this matrix from a series of column vectors. Non-overwritten fields are from an Identity matrix.
 /// </summary>
 public lmat4x2(lvec2 c0, lvec2 c1, lvec2 c2, lvec2 c3)
 {
     this.m00 = c0.x;
     this.m01 = c0.y;
     this.m10 = c1.x;
     this.m11 = c1.y;
     this.m20 = c2.x;
     this.m21 = c2.y;
     this.m30 = c3.x;
     this.m31 = c3.y;
 }
Example #9
0
        public void SerializationJson()
        {
            var v0 = new lvec2(9L, 6L);
            var s0 = JsonConvert.SerializeObject(v0);

            var v1 = JsonConvert.DeserializeObject <lvec2>(s0);
            var s1 = JsonConvert.SerializeObject(v1);

            Assert.AreEqual(v0, v1);
            Assert.AreEqual(s0, s1);
        }
Example #10
0
 public void TriangleInequality()
 {
     {
         var v0 = new lvec2(8L, -4L);
         var v1 = new lvec2(-2L, -6L);
         Assert.GreaterOrEqual(v0.NormMax + v1.NormMax, (v0 + v1).NormMax);
     }
     {
         var v0 = new lvec2(-6L, -6L);
         var v1 = new lvec2(7L, -4L);
         Assert.GreaterOrEqual(v0.NormMax + v1.NormMax, (v0 + v1).NormMax);
     }
     {
         var v0 = new lvec2(7L, -3L);
         var v1 = new lvec2(-7L, 2L);
         Assert.GreaterOrEqual(v0.NormMax + v1.NormMax, (v0 + v1).NormMax);
     }
     {
         var v0 = new lvec2(-1L, -7L);
         var v1 = new lvec2(6L, -9L);
         Assert.GreaterOrEqual(v0.NormMax + v1.NormMax, (v0 + v1).NormMax);
     }
     {
         var v0 = new lvec2(-3L, 1);
         var v1 = new lvec2(-8L, 8L);
         Assert.GreaterOrEqual(v0.NormMax + v1.NormMax, (v0 + v1).NormMax);
     }
     {
         var v0 = new lvec2(0, -3L);
         var v1 = new lvec2(-7L, -8L);
         Assert.GreaterOrEqual(v0.NormMax + v1.NormMax, (v0 + v1).NormMax);
     }
     {
         var v0 = new lvec2(0, 5L);
         var v1 = new lvec2(-5L, 2L);
         Assert.GreaterOrEqual(v0.NormMax + v1.NormMax, (v0 + v1).NormMax);
     }
     {
         var v0 = new lvec2(-8L, -8L);
         var v1 = new lvec2(-7L, -5L);
         Assert.GreaterOrEqual(v0.NormMax + v1.NormMax, (v0 + v1).NormMax);
     }
     {
         var v0 = new lvec2(7L, -5L);
         var v1 = new lvec2(-5L, -7L);
         Assert.GreaterOrEqual(v0.NormMax + v1.NormMax, (v0 + v1).NormMax);
     }
     {
         var v0 = new lvec2(5L, 6L);
         var v1 = new lvec2(-4L, 6L);
         Assert.GreaterOrEqual(v0.NormMax + v1.NormMax, (v0 + v1).NormMax);
     }
 }
Example #11
0
 public void InvariantCommutative()
 {
     {
         var v0 = new lvec2(-2L, 6L);
         var v1 = new lvec2(-6L, 8L);
         Assert.AreEqual(v0 * v1, v1 * v0);
     }
     {
         var v0 = new lvec2(-4L, -9L);
         var v1 = new lvec2(9L, 0);
         Assert.AreEqual(v0 * v1, v1 * v0);
     }
     {
         var v0 = new lvec2(6L, 6L);
         var v1 = new lvec2(-3L, -2L);
         Assert.AreEqual(v0 * v1, v1 * v0);
     }
     {
         var v0 = new lvec2(4L, -6L);
         var v1 = new lvec2(1, -9L);
         Assert.AreEqual(v0 * v1, v1 * v0);
     }
     {
         var v0 = new lvec2(-2L, 3L);
         var v1 = new lvec2(1, -7L);
         Assert.AreEqual(v0 * v1, v1 * v0);
     }
     {
         var v0 = new lvec2(-9L, 0);
         var v1 = new lvec2(6L, -4L);
         Assert.AreEqual(v0 * v1, v1 * v0);
     }
     {
         var v0 = new lvec2(0, -5L);
         var v1 = new lvec2(-8L, 2L);
         Assert.AreEqual(v0 * v1, v1 * v0);
     }
     {
         var v0 = new lvec2(0, 6L);
         var v1 = new lvec2(7L, -2L);
         Assert.AreEqual(v0 * v1, v1 * v0);
     }
     {
         var v0 = new lvec2(5L, -5L);
         var v1 = new lvec2(4L, 9L);
         Assert.AreEqual(v0 * v1, v1 * v0);
     }
     {
         var v0 = new lvec2(-2L, -1L);
         var v1 = new lvec2(-3L, 5L);
         Assert.AreEqual(v0 * v1, v1 * v0);
     }
 }
Example #12
0
 public void InvariantCommutativeNeg()
 {
     {
         var v0 = new lvec2(-6L, -2L);
         var v1 = new lvec2(-2L, 5L);
         Assert.AreEqual(v0 - v1, -(v1 - v0));
     }
     {
         var v0 = new lvec2(-6L, -7L);
         var v1 = new lvec2(-9L, 8L);
         Assert.AreEqual(v0 - v1, -(v1 - v0));
     }
     {
         var v0 = new lvec2(-2L, 6L);
         var v1 = new lvec2(-1L, 9L);
         Assert.AreEqual(v0 - v1, -(v1 - v0));
     }
     {
         var v0 = new lvec2(-1L, 7L);
         var v1 = new lvec2(1, -8L);
         Assert.AreEqual(v0 - v1, -(v1 - v0));
     }
     {
         var v0 = new lvec2(9L, 6L);
         var v1 = new lvec2(9L, -2L);
         Assert.AreEqual(v0 - v1, -(v1 - v0));
     }
     {
         var v0 = new lvec2(7L, -6L);
         var v1 = new lvec2(-7L, 2L);
         Assert.AreEqual(v0 - v1, -(v1 - v0));
     }
     {
         var v0 = new lvec2(-9L, 9L);
         var v1 = new lvec2(7L, -1L);
         Assert.AreEqual(v0 - v1, -(v1 - v0));
     }
     {
         var v0 = new lvec2(-5L, 5L);
         var v1 = new lvec2(0, 9L);
         Assert.AreEqual(v0 - v1, -(v1 - v0));
     }
     {
         var v0 = new lvec2(2L, -9L);
         var v1 = new lvec2(1, 1);
         Assert.AreEqual(v0 - v1, -(v1 - v0));
     }
     {
         var v0 = new lvec2(-6L, -6L);
         var v1 = new lvec2(6L, -9L);
         Assert.AreEqual(v0 - v1, -(v1 - v0));
     }
 }
Example #13
0
 /// <summary>
 /// Constructs this matrix from a series of column vectors. Non-overwritten fields are from an Identity matrix.
 /// </summary>
 public lmat3(lvec2 c0, lvec2 c1, lvec2 c2)
 {
     this.m00 = c0.x;
     this.m01 = c0.y;
     this.m02 = 0;
     this.m10 = c1.x;
     this.m11 = c1.y;
     this.m12 = 0;
     this.m20 = c2.x;
     this.m21 = c2.y;
     this.m22 = 1;
 }
Example #14
0
        public void Operators()
        {
            var v1 = new lvec2(9L, -1L);
            var v2 = new lvec2(9L, -1L);
            var v3 = new lvec2(-1L, 9L);

            Assert.That(v1 == new lvec2(v1));
            Assert.That(v2 == new lvec2(v2));
            Assert.That(v3 == new lvec2(v3));
            Assert.That(v1 == v2);
            Assert.That(v1 != v3);
            Assert.That(v2 != v3);
        }
Example #15
0
        public void StringInterop()
        {
            var v = new lvec2(-2L, 6L);

            var s0 = v.ToString();
            var s1 = v.ToString("#");

            var v0 = lvec2.Parse(s0);
            var v1 = lvec2.Parse(s1, "#");

            Assert.AreEqual(v, v0);
            Assert.AreEqual(v, v1);

            var b0 = lvec2.TryParse(s0, out v0);
            var b1 = lvec2.TryParse(s1, "#", out v1);

            Assert.That(b0);
            Assert.That(b1);
            Assert.AreEqual(v, v0);
            Assert.AreEqual(v, v1);

            b0 = lvec2.TryParse(null, out v0);
            Assert.False(b0);
            b0 = lvec2.TryParse("", out v0);
            Assert.False(b0);
            b0 = lvec2.TryParse(s0 + ", 0", out v0);
            Assert.False(b0);

            Assert.Throws <NullReferenceException>(() => { lvec2.Parse(null); });
            Assert.Throws <FormatException>(() => { lvec2.Parse(""); });
            Assert.Throws <FormatException>(() => { lvec2.Parse(s0 + ", 0"); });

            var s2 = v.ToString(";", CultureInfo.InvariantCulture);

            Assert.That(s2.Length > 0);

            var s3 = v.ToString("; ", "G");
            var s4 = v.ToString("; ", "G", CultureInfo.InvariantCulture);
            var v3 = lvec2.Parse(s3, "; ", NumberStyles.Number);
            var v4 = lvec2.Parse(s4, "; ", NumberStyles.Number, CultureInfo.InvariantCulture);

            Assert.AreEqual(v, v3);
            Assert.AreEqual(v, v4);

            var b4 = lvec2.TryParse(s4, "; ", NumberStyles.Number, CultureInfo.InvariantCulture, out v4);

            Assert.That(b4);
            Assert.AreEqual(v, v4);
        }
Example #16
0
 /// <summary>
 /// Constructs this matrix from a series of column vectors. Non-overwritten fields are from an Identity matrix.
 /// </summary>
 public lmat3x4(lvec2 c0, lvec2 c1)
 {
     this.m00 = c0.x;
     this.m01 = c0.y;
     this.m02 = 0;
     this.m03 = 0;
     this.m10 = c1.x;
     this.m11 = c1.y;
     this.m12 = 0;
     this.m13 = 0;
     this.m20 = 0;
     this.m21 = 0;
     this.m22 = 1;
     this.m23 = 0;
 }
Example #17
0
 /// <summary>
 /// Constructs this matrix from a series of column vectors. Non-overwritten fields are from an Identity matrix.
 /// </summary>
 public lmat4x3(lvec2 c0, lvec2 c1)
 {
     this.m00 = c0.x;
     this.m01 = c0.y;
     this.m02 = 0;
     this.m10 = c1.x;
     this.m11 = c1.y;
     this.m12 = 0;
     this.m20 = 0;
     this.m21 = 0;
     this.m22 = 1;
     this.m30 = 0;
     this.m31 = 0;
     this.m32 = 0;
 }
Example #18
0
 /// <summary>
 /// Constructs this matrix from a series of column vectors. Non-overwritten fields are from an Identity matrix.
 /// </summary>
 public lmat4x3(lvec2 c0, lvec2 c1, lvec2 c2, lvec2 c3)
 {
     this.m00 = c0.x;
     this.m01 = c0.y;
     this.m02 = 0;
     this.m10 = c1.x;
     this.m11 = c1.y;
     this.m12 = 0;
     this.m20 = c2.x;
     this.m21 = c2.y;
     this.m22 = 1;
     this.m30 = c3.x;
     this.m31 = c3.y;
     this.m32 = 0;
 }
Example #19
0
        public void InlineRGBA()
        {
            {
                var v0 = new lvec2(-5L, -7L);
                var v1 = 8L;
                var v2 = v0.r;
                v0.r = v1;
                var v3 = v0.r;

                Assert.AreEqual(v1, v3);

                Assert.AreEqual(8L, v0.x);
                Assert.AreEqual(-7L, v0.y);

                Assert.AreEqual(-5L, v2);
            }
            {
                var v0 = new lvec2(-8L, -4L);
                var v1 = 1;
                var v2 = v0.g;
                v0.g = v1;
                var v3 = v0.g;

                Assert.AreEqual(v1, v3);

                Assert.AreEqual(-8L, v0.x);
                Assert.AreEqual(1, v0.y);

                Assert.AreEqual(-4L, v2);
            }
            {
                var v0 = new lvec2(-4L, 5L);
                var v1 = new lvec2(-3L, -5L);
                var v2 = v0.rg;
                v0.rg = v1;
                var v3 = v0.rg;

                Assert.AreEqual(v1, v3);

                Assert.AreEqual(-3L, v0.x);
                Assert.AreEqual(-5L, v0.y);

                Assert.AreEqual(-4L, v2.x);
                Assert.AreEqual(5L, v2.y);
            }
        }
Example #20
0
        public void InlineXYZW()
        {
            {
                var v0 = new lvec2(4L, 8L);
                var v1 = new lvec2(-2L, -9L);
                var v2 = v0.xy;
                v0.xy = v1;
                var v3 = v0.xy;

                Assert.AreEqual(v1, v3);

                Assert.AreEqual(-2L, v0.x);
                Assert.AreEqual(-9L, v0.y);

                Assert.AreEqual(4L, v2.x);
                Assert.AreEqual(8L, v2.y);
            }
        }
Example #21
0
 public void InvariantDouble()
 {
     {
         var v0 = new lvec2(3L, 3L);
         Assert.AreEqual(v0 + v0, 2 * v0);
     }
     {
         var v0 = new lvec2(-5L, -1L);
         Assert.AreEqual(v0 + v0, 2 * v0);
     }
     {
         var v0 = new lvec2(-7L, 0);
         Assert.AreEqual(v0 + v0, 2 * v0);
     }
     {
         var v0 = new lvec2(-4L, -4L);
         Assert.AreEqual(v0 + v0, 2 * v0);
     }
     {
         var v0 = new lvec2(-7L, 4L);
         Assert.AreEqual(v0 + v0, 2 * v0);
     }
     {
         var v0 = new lvec2(9L, -3L);
         Assert.AreEqual(v0 + v0, 2 * v0);
     }
     {
         var v0 = new lvec2(-5L, 4L);
         Assert.AreEqual(v0 + v0, 2 * v0);
     }
     {
         var v0 = new lvec2(1, -1L);
         Assert.AreEqual(v0 + v0, 2 * v0);
     }
     {
         var v0 = new lvec2(-6L, -2L);
         Assert.AreEqual(v0 + v0, 2 * v0);
     }
     {
         var v0 = new lvec2(9L, -7L);
         Assert.AreEqual(v0 + v0, 2 * v0);
     }
 }
Example #22
0
 public void InvariantId()
 {
     {
         var v0 = new lvec2(-8L, -9L);
         Assert.AreEqual(v0, +v0);
     }
     {
         var v0 = new lvec2(-4L, -1L);
         Assert.AreEqual(v0, +v0);
     }
     {
         var v0 = new lvec2(6L, -9L);
         Assert.AreEqual(v0, +v0);
     }
     {
         var v0 = new lvec2(-2L, 0);
         Assert.AreEqual(v0, +v0);
     }
     {
         var v0 = new lvec2(-9L, -2L);
         Assert.AreEqual(v0, +v0);
     }
     {
         var v0 = new lvec2(5L, -7L);
         Assert.AreEqual(v0, +v0);
     }
     {
         var v0 = new lvec2(8L, 7L);
         Assert.AreEqual(v0, +v0);
     }
     {
         var v0 = new lvec2(-3L, 0);
         Assert.AreEqual(v0, +v0);
     }
     {
         var v0 = new lvec2(-5L, 2L);
         Assert.AreEqual(v0, +v0);
     }
     {
         var v0 = new lvec2(-7L, 2L);
         Assert.AreEqual(v0, +v0);
     }
 }
Example #23
0
 public void InvariantIdNeg()
 {
     {
         var v0 = new lvec2(-9L, 3L);
         Assert.AreEqual(v0, -(-v0));
     }
     {
         var v0 = new lvec2(-9L, 7L);
         Assert.AreEqual(v0, -(-v0));
     }
     {
         var v0 = new lvec2(4L, -8L);
         Assert.AreEqual(v0, -(-v0));
     }
     {
         var v0 = new lvec2(-6L, -4L);
         Assert.AreEqual(v0, -(-v0));
     }
     {
         var v0 = new lvec2(5L, -8L);
         Assert.AreEqual(v0, -(-v0));
     }
     {
         var v0 = new lvec2(4L, 8L);
         Assert.AreEqual(v0, -(-v0));
     }
     {
         var v0 = new lvec2(-9L, -1L);
         Assert.AreEqual(v0, -(-v0));
     }
     {
         var v0 = new lvec2(-1L, 6L);
         Assert.AreEqual(v0, -(-v0));
     }
     {
         var v0 = new lvec2(-5L, -4L);
         Assert.AreEqual(v0, -(-v0));
     }
     {
         var v0 = new lvec2(-8L, -6L);
         Assert.AreEqual(v0, -(-v0));
     }
 }
Example #24
0
 public void InvariantTriple()
 {
     {
         var v0 = new lvec2(-6L, 2L);
         Assert.AreEqual(v0 + v0 + v0, 3 * v0);
     }
     {
         var v0 = new lvec2(4L, 1);
         Assert.AreEqual(v0 + v0 + v0, 3 * v0);
     }
     {
         var v0 = new lvec2(4L, 1);
         Assert.AreEqual(v0 + v0 + v0, 3 * v0);
     }
     {
         var v0 = new lvec2(8L, 4L);
         Assert.AreEqual(v0 + v0 + v0, 3 * v0);
     }
     {
         var v0 = new lvec2(-1L, -5L);
         Assert.AreEqual(v0 + v0 + v0, 3 * v0);
     }
     {
         var v0 = new lvec2(-1L, -6L);
         Assert.AreEqual(v0 + v0 + v0, 3 * v0);
     }
     {
         var v0 = new lvec2(9L, -7L);
         Assert.AreEqual(v0 + v0 + v0, 3 * v0);
     }
     {
         var v0 = new lvec2(3L, 8L);
         Assert.AreEqual(v0 + v0 + v0, 3 * v0);
     }
     {
         var v0 = new lvec2(-5L, -4L);
         Assert.AreEqual(v0 + v0 + v0, 3 * v0);
     }
     {
         var v0 = new lvec2(8L, 5L);
         Assert.AreEqual(v0 + v0 + v0, 3 * v0);
     }
 }
Example #25
0
 public void InvariantNorm()
 {
     {
         var v0 = new lvec2(-2L, -5L);
         Assert.LessOrEqual(v0.NormMax, v0.Norm);
     }
     {
         var v0 = new lvec2(6L, 9L);
         Assert.LessOrEqual(v0.NormMax, v0.Norm);
     }
     {
         var v0 = new lvec2(-1L, 4L);
         Assert.LessOrEqual(v0.NormMax, v0.Norm);
     }
     {
         var v0 = new lvec2(-3L, -5L);
         Assert.LessOrEqual(v0.NormMax, v0.Norm);
     }
     {
         var v0 = new lvec2(-7L, 8L);
         Assert.LessOrEqual(v0.NormMax, v0.Norm);
     }
     {
         var v0 = new lvec2(2L, -9L);
         Assert.LessOrEqual(v0.NormMax, v0.Norm);
     }
     {
         var v0 = new lvec2(-7L, 9L);
         Assert.LessOrEqual(v0.NormMax, v0.Norm);
     }
     {
         var v0 = new lvec2(0, 3L);
         Assert.LessOrEqual(v0.NormMax, v0.Norm);
     }
     {
         var v0 = new lvec2(-4L, 4L);
         Assert.LessOrEqual(v0.NormMax, v0.Norm);
     }
     {
         var v0 = new lvec2(-1L, -4L);
         Assert.LessOrEqual(v0.NormMax, v0.Norm);
     }
 }
Example #26
0
 /// <summary>
 /// OuterProduct treats the first parameter c as a column vector (matrix with one column) and the second parameter r as a row vector (matrix with one row) and does a linear algebraic matrix multiply c * r, yielding a matrix whose number of rows is the number of components in c and whose number of columns is the number of components in r.
 /// </summary>
 public static lmat2x3 OuterProduct(lvec3 c, lvec2 r) => lvec3.OuterProduct(c, r);
Example #27
0
 /// <summary>
 /// Returns a bvec2 from component-wise application of GreaterThanEqual (lhs &gt;= rhs).
 /// </summary>
 public static bvec2 GreaterThanEqual(lvec2 lhs, lvec2 rhs) => lvec2.GreaterThanEqual(lhs, rhs);
Example #28
0
 /// <summary>
 /// Returns a bvec2 from component-wise application of NotEqual (lhs != rhs).
 /// </summary>
 public static bvec2 NotEqual(lvec2 lhs, lvec2 rhs) => lvec2.NotEqual(lhs, rhs);
Example #29
0
 /// <summary>
 /// Returns a bvec2 from component-wise application of Equal (lhs == rhs).
 /// </summary>
 public static bvec2 Equal(lvec2 lhs, lvec2 rhs) => lvec2.Equal(lhs, rhs);
Example #30
0
 /// <summary>
 /// Returns a hash code for this instance.
 /// </summary>
 public static int GetHashCode(lvec2 v) => v.GetHashCode();