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; } }
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)); }