Example #1
0
        private void ApplyEffectsInternal(ISound sound)
        {
            if (sound[NumericData.Volume].HasValue)
            {
                foreach (var sample in sound.Samples)
                {
                    ApplyGain(sample.Data, sound[NumericData.Volume].Value);
                }
                sound[NumericData.Volume] = null;
            }

            if (sound[NumericData.Panning].HasValue)
            {
                var isLeftPanning = true;
                var left          = BigRational.Sqrt(BigRational.One - sound[NumericData.Panning].Value);
                var right         = BigRational.Sqrt(sound[NumericData.Panning].Value);
                foreach (var sample in sound.Samples)
                {
                    ApplyGain(sample.Data,
                              isLeftPanning ? left : right);
                    isLeftPanning = !isLeftPanning;
                }

                sound[NumericData.Panning] = null;
            }
        }
Example #2
0
    public static BigRational Distance(Point2BigRational p1, Point2BigRational p2)
    {
        var dx = p2.X - p1.X;
        var dy = p2.Y - p1.Y;

        var dx2 = dx * dx;
        var dy2 = dy * dy;

        return(BigRational.Sqrt(dx2 + dy2, 6));
    }
        public void Sqrt_Test()
        {
            var r = new BigRational(2, 1);

            Assert.AreEqual(r, BigRational.Sqrt(4));

            r = new BigRational(3, 1);
            Assert.AreEqual(r, BigRational.Sqrt(9));

            r = new BigRational(BigInteger.Parse("2168488286494085478154297235187389205761"), BigInteger.Parse("685736206471705483022831680917430579904"));
            Assert.AreEqual(r, BigRational.Sqrt(10));
        }