public void ComplexDiLogSymmetry() { foreach (Complex z in TestUtilities.GenerateComplexValues(1.0E-2, 1.0E2, 12)) { Assert.IsTrue(TestUtilities.IsSumNearlyEqual( AdvancedComplexMath.DiLog(z), AdvancedComplexMath.DiLog(-z), AdvancedComplexMath.DiLog(z * z) / 2.0 )); Assert.IsTrue(TestUtilities.IsNearlyEqual( -AdvancedComplexMath.DiLog(1.0 / z), AdvancedComplexMath.DiLog(z) + ComplexMath.Log(-z) * ComplexMath.Log(-z) / 2.0 + Math.PI * Math.PI / 6.0 )); Assert.IsTrue(TestUtilities.IsNearlyEqual( -AdvancedComplexMath.DiLog(1.0 - z), AdvancedComplexMath.DiLog(z) + ComplexMath.Log(z) * ComplexMath.Log(1.0 - z) - Math.PI * Math.PI / 6.0 )); } }
public void ComplexDiLogUnitCircle() { Assert.IsTrue(TestUtilities.IsNearlyEqual( AdvancedComplexMath.DiLog(1.0), Math.PI * Math.PI / 6.0 )); Assert.IsTrue(TestUtilities.IsNearlyEqual( AdvancedComplexMath.DiLog(ComplexMath.I), new Complex(-Math.PI * Math.PI / 48.0, AdvancedMath.Catalan) )); Assert.IsTrue(TestUtilities.IsNearlyEqual( AdvancedComplexMath.DiLog(-1.0), -Math.PI * Math.PI / 12.0 )); Assert.IsTrue(TestUtilities.IsNearlyEqual( AdvancedComplexMath.DiLog(-ComplexMath.I), new Complex(-Math.PI * Math.PI / 48.0, -AdvancedMath.Catalan) )); }