Browse Source

Use MathF

pull/181/head
James Jackson-South 9 years ago
parent
commit
3d9ce7650c
  1. 8
      src/ImageSharp/Colors/Spaces/Conversion/Implementation/CieLab/CieLabToCieXyzConverter.cs
  2. 8
      src/ImageSharp/Colors/Spaces/Conversion/Implementation/CieLab/CieXyzToCieLabConverter.cs
  3. 6
      src/ImageSharp/Colors/Spaces/Conversion/Implementation/Rgb/GammaCompanding.cs
  4. 5
      src/ImageSharp/Colors/Spaces/Conversion/Implementation/Rgb/LCompanding.cs
  5. 3
      src/ImageSharp/Colors/Spaces/Conversion/Implementation/Rgb/Rec2020Companding.cs
  6. 3
      src/ImageSharp/Colors/Spaces/Conversion/Implementation/Rgb/Rec709Companding.cs
  7. 5
      src/ImageSharp/Colors/Spaces/Conversion/Implementation/Rgb/SRgbCompanding.cs

8
src/ImageSharp/Colors/Spaces/Conversion/Implementation/CieLab/CieLabToCieXyzConverter.cs

@ -5,8 +5,6 @@
namespace ImageSharp.Colors.Spaces.Conversion.Implementation.CieLab
{
using System;
using ImageSharp.Colors.Spaces;
/// <summary>
@ -25,11 +23,11 @@ namespace ImageSharp.Colors.Spaces.Conversion.Implementation.CieLab
float fx = (a / 500F) + fy;
float fz = fy - (b / 200F);
float fx3 = (float)Math.Pow(fx, 3D);
float fz3 = (float)Math.Pow(fz, 3D);
float fx3 = MathF.Pow(fx, 3F);
float fz3 = MathF.Pow(fz, 3F);
float xr = fx3 > CieConstants.Epsilon ? fx3 : ((116F * fx) - 16F) / CieConstants.Kappa;
float yr = l > CieConstants.Kappa * CieConstants.Epsilon ? (float)Math.Pow((l + 16F) / 116F, 3D) : l / CieConstants.Kappa;
float yr = l > CieConstants.Kappa * CieConstants.Epsilon ? MathF.Pow((l + 16F) / 116F, 3F) : l / CieConstants.Kappa;
float zr = fz3 > CieConstants.Epsilon ? fz3 : ((116F * fz) - 16F) / CieConstants.Kappa;
float wx = input.WhitePoint.X, wy = input.WhitePoint.Y, wz = input.WhitePoint.Z;

8
src/ImageSharp/Colors/Spaces/Conversion/Implementation/CieLab/CieXyzToCieLabConverter.cs

@ -5,8 +5,6 @@
namespace ImageSharp.Colors.Spaces.Conversion.Implementation.CieLab
{
using System;
using ImageSharp.Colors.Spaces;
/// <summary>
@ -46,9 +44,9 @@ namespace ImageSharp.Colors.Spaces.Conversion.Implementation.CieLab
float xr = input.X / wx, yr = input.Y / wy, zr = input.Z / wz;
float fx = xr > CieConstants.Epsilon ? (float)Math.Pow(xr, 0.333333333333333D) : ((CieConstants.Kappa * xr) + 16F) / 116F;
float fy = yr > CieConstants.Epsilon ? (float)Math.Pow(yr, 0.333333333333333D) : ((CieConstants.Kappa * yr) + 16F) / 116F;
float fz = zr > CieConstants.Epsilon ? (float)Math.Pow(zr, 0.333333333333333D) : ((CieConstants.Kappa * zr) + 16F) / 116F;
float fx = xr > CieConstants.Epsilon ? MathF.Pow(xr, 0.3333333F) : ((CieConstants.Kappa * xr) + 16F) / 116F;
float fy = yr > CieConstants.Epsilon ? MathF.Pow(yr, 0.3333333F) : ((CieConstants.Kappa * yr) + 16F) / 116F;
float fz = zr > CieConstants.Epsilon ? MathF.Pow(zr, 0.3333333F) : ((CieConstants.Kappa * zr) + 16F) / 116F;
float l = (116F * fy) - 16F;
float a = 500F * (fx - fy);

6
src/ImageSharp/Colors/Spaces/Conversion/Implementation/Rgb/GammaCompanding.cs

@ -35,14 +35,14 @@ namespace ImageSharp.Colors.Spaces.Conversion.Implementation.Rgb
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public float Expand(float channel)
{
return (float)Math.Pow(channel, this.Gamma);
return MathF.Pow(channel, this.Gamma);
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public float Compress(float channel)
{
return (float)Math.Pow(channel, 1 / this.Gamma);
return MathF.Pow(channel, 1 / this.Gamma);
}
}
}
}

5
src/ImageSharp/Colors/Spaces/Conversion/Implementation/Rgb/LCompanding.cs

@ -5,7 +5,6 @@
namespace ImageSharp.Colors.Spaces.Conversion.Implementation.Rgb
{
using System;
using System.Runtime.CompilerServices;
/// <summary>
@ -22,7 +21,7 @@ namespace ImageSharp.Colors.Spaces.Conversion.Implementation.Rgb
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public float Expand(float channel)
{
return channel <= 0.08 ? 100 * channel / CieConstants.Kappa : (float)Math.Pow((channel + 0.16) / 1.16, 3);
return channel <= 0.08 ? 100 * channel / CieConstants.Kappa : MathF.Pow((channel + 0.16F) / 1.16F, 3);
}
/// <inheritdoc/>
@ -31,7 +30,7 @@ namespace ImageSharp.Colors.Spaces.Conversion.Implementation.Rgb
{
return channel <= CieConstants.Epsilon
? channel * CieConstants.Kappa / 100F
: (float)Math.Pow(1.16 * channel, 0.333333333333333D) - 0.16F;
: MathF.Pow(1.16F * channel, 0.3333333F) - 0.16F;
}
}
}

3
src/ImageSharp/Colors/Spaces/Conversion/Implementation/Rgb/Rec2020Companding.cs

@ -5,7 +5,6 @@
namespace ImageSharp.Colors.Spaces.Conversion.Implementation.Rgb
{
using System;
using System.Runtime.CompilerServices;
/// <summary>
@ -21,7 +20,7 @@ namespace ImageSharp.Colors.Spaces.Conversion.Implementation.Rgb
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public float Expand(float channel)
{
return channel < 0.08145F ? channel / 4.5F : (float)Math.Pow((channel + 0.0993) / 1.0993, 1 / 0.45);
return channel < 0.08145F ? channel / 4.5F : MathF.Pow((channel + 0.0993F) / 1.0993F, 2.222222F);
}
/// <inheritdoc/>

3
src/ImageSharp/Colors/Spaces/Conversion/Implementation/Rgb/Rec709Companding.cs

@ -5,7 +5,6 @@
namespace ImageSharp.Colors.Spaces.Conversion.Implementation.Rgb
{
using System;
using System.Runtime.CompilerServices;
/// <summary>
@ -20,7 +19,7 @@ namespace ImageSharp.Colors.Spaces.Conversion.Implementation.Rgb
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public float Expand(float channel)
{
return channel < 0.081F ? channel / 4.5F : (float)Math.Pow((channel + 0.099) / 1.099, 1 / 0.45);
return channel < 0.081F ? channel / 4.5F : MathF.Pow((channel + 0.099F) / 1.099F, 2.222222F);
}
/// <inheritdoc/>

5
src/ImageSharp/Colors/Spaces/Conversion/Implementation/Rgb/SRgbCompanding.cs

@ -5,7 +5,6 @@
namespace ImageSharp.Colors.Spaces.Conversion.Implementation.Rgb
{
using System;
using System.Runtime.CompilerServices;
/// <summary>
@ -22,14 +21,14 @@ namespace ImageSharp.Colors.Spaces.Conversion.Implementation.Rgb
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public float Expand(float channel)
{
return channel <= 0.04045F ? channel / 12.92F : (float)Math.Pow((channel + 0.055) / 1.055, 2.4);
return channel <= 0.04045F ? channel / 12.92F : MathF.Pow((channel + 0.055F) / 1.055F, 2.4F);
}
/// <inheritdoc/>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public float Compress(float channel)
{
return channel <= 0.0031308F ? 12.92F * channel : (1.055F * (float)Math.Pow(channel, 0.416666666666667D)) - 0.055F;
return channel <= 0.0031308F ? 12.92F * channel : (1.055F * MathF.Pow(channel, 0.416666666666667F)) - 0.055F;
}
}
}
Loading…
Cancel
Save