static void Main(string[] args) { alpha fonct = fct; B c = new B("Bernard"); A b = new A(fonct); alpha fonct2 = c.myName; b.a += fonct2; b.a(1); }
return(new SpriteRenderable(sprite, pos, offset, zOffset, palette, scale, alpha, newTint, newTintModifiers, isDecoration));
var(alpha, block) = func();
/// <summary> /// 楕円フィルタの設計 /// </summary> /// <param name="n">バターワースフィルタの次数</param> /// <param name="w">カットオフ周波数</param> /// <param name="epsilon">ε</param> /// <param name="k1">k1</param> /// <param name="type">false のときLPF、trueのときHPF</param> /// <returns>フィルタ係数</returns> public static Parameter[] GetElliptic(int n, double w, double epsilon, double k1, bool type) { double t = Math.Pow((1 + Math.Sqrt(1 + epsilon * epsilon)) / epsilon, 1.0 / n); double beta0 = (t * t - 1) / (2 * t); double cos = Math.Cos(w); double sin = Math.Sqrt(1 - cos * cos); //Math.Sin(w); double a0, a1, a2, b0, b1, b2; int len = n / 2; int k; Parameter[] parameters; if (n % 2 == 0) { parameters = new Parameter[len]; k = 1; } else { parameters = new Parameter[len + 1]; k = 2; a0 = 1; a1 = beta0; b0 = 1; b1 = 0; /* テスト用(Butterworth 特性) * a0 = 1; a1 = 1; * b0 = 1; b1 = 0; * //*/ if (type) { BilinearTransformHPF(ref a0, ref a1, sin, cos); BilinearTransformHPF(ref b0, ref b1, sin, cos); } else { BilinearTransform(ref a0, ref a1, sin, cos); BilinearTransform(ref b0, ref b1, sin, cos); } parameters[len].c = b0 / a0; parameters[len].a1 = -a1 / a0; parameters[len].a2 = 0; parameters[len].b1 = b1 / b0; parameters[len].b2 = 0; } for (int i = 0; i < len; ++i, k += 2) { double wk = (double)k / n * Math.PI / 2; double alpha = 2 * beta0 * Math.Cos(wk); double beta = Math.Sin(wk); beta *= beta; double gamma = beta; beta += beta0 * beta0; a0 = 1; a1 = alpha; a2 = beta; b0 = 1; b1 = 0; b2 = gamma; /* テスト用(Butterworth 特性) * double alpha = 2 * Math.Cos(wk); * a0 = 1; a1 = alpha; a2 = 1; * b0 = 1; b1 = 0; b2 = 0; * //*/ if (type) { BilinearTransformHPF(ref a0, ref a1, ref a2, sin, cos); BilinearTransformHPF(ref b0, ref b1, ref b2, sin, cos); } else { BilinearTransform(ref a0, ref a1, ref a2, sin, cos); BilinearTransform(ref b0, ref b1, ref b2, sin, cos); } parameters[i].c = b0 / a0; parameters[i].a1 = -a1 / a0; parameters[i].a2 = -a2 / a0; parameters[i].b1 = b1 / b0; parameters[i].b2 = b2 / b0; } return(parameters); }
/// <summary> /// Chebyshev I 型フィルタの設計 /// </summary> /// <param name="n">バターワースフィルタの次数</param> /// <param name="w">カットオフ周波数</param> /// <param name="epsilon">リプルの許容幅</param> /// <param name="type">0のときLPF、1のときHPF</param> /// <returns>フィルタ係数</returns> public static Parameter[] GetChebyshev1(int n, double w, double epsilon, int type) { double k = Math.Pow((1 + Math.Sqrt(1 + epsilon * epsilon)) / epsilon, 1.0 / n); double beta0 = (k * k - 1) / (2 * k); double sin = Math.Sin(w); double cos = Math.Cos(w); double a0, a1, a2, b0, tmp; int len = n / 2; double nu; Parameter[] parameters; if (n % 2 == 0) { parameters = new Parameter[len]; nu = 0.5; } else { parameters = new Parameter[len + 1]; nu = 1; tmp = 1 + cos; if (type == 0) { b0 = beta0 * sin; a0 = b0 + tmp; a1 = b0 - tmp; parameters[len].b1 = 1; } else { b0 = beta0 * tmp; a0 = sin + b0; a1 = sin - b0; parameters[len].b1 = -1; } parameters[len].c = b0 / a0; parameters[len].a1 = -a1 / a0; parameters[len].a2 = 0; parameters[len].b2 = 0; } for (int i = 0; i < len; ++i, ++nu) { double alpha = sin * 2 * beta0 * Math.Cos(nu / n * Math.PI); double beta = Math.Sin(nu / n * Math.PI); beta *= beta; beta += beta0 * beta0; if (type == 0) { b0 = beta * (1 - cos); tmp = 1 + cos; a1 = 2 * (b0 - tmp); parameters[i].b1 = 2; } else { b0 = beta * (1 + cos); tmp = 1 - cos; a1 = 2 * (tmp - b0); parameters[i].b1 = -2; } a0 = b0 + tmp + alpha; a2 = b0 + tmp - alpha; parameters[i].c = b0 / a0; parameters[i].a1 = -a1 / a0; parameters[i].a2 = -a2 / a0; parameters[i].b2 = 1; } return(parameters); }
/// <summary> /// Butterworth フィルタの設計 /// </summary> /// <param name="n">バターワースフィルタの次数</param> /// <param name="w">カットオフ周波数</param> /// <param name="type">0のときLPF、1のときHPF</param> /// <returns>フィルタ係数</returns> public static Parameter[] GetButterworth(int n, double w, int type) { double sin = Math.Sin(w); double cos = Math.Cos(w); double a0, a1, a2, b0; if (type == 0) { b0 = (1 - cos) / 2; } else { b0 = (1 + cos) / 2; } a1 = -2 * cos; int len = n / 2; double nu; Parameter[] parameters; if (n % 2 == 0) { parameters = new Parameter[len]; nu = 0.5; } else { parameters = new Parameter[len + 1]; nu = 1; a0 = sin + cos + 1; a2 = sin - cos - 1; if (type == 0) { parameters[len].c = sin / a0; } else { parameters[len].c = (1 + cos) / a0; } parameters[len].a1 = -a2 / a0; parameters[len].a2 = 0; if (type == 0) { parameters[len].b1 = 1; } else { parameters[len].b1 = -1; } parameters[len].b2 = 0; } for (int i = 0; i < len; ++i, ++nu) { double alpha = sin * Math.Cos(nu / n * Math.PI); a0 = 1 + alpha; a2 = 1 - alpha; parameters[i].c = b0 / a0; parameters[i].a1 = -a1 / a0; parameters[i].a2 = -a2 / a0; if (type == 0) { parameters[i].b1 = 2; } else { parameters[i].b1 = -2; } parameters[i].b2 = 1; } return(parameters); }
PublicColor.FromArgb(alpha, lcSolidColors[0]),
public A(alpha fctDeleguee) { a += fctDeleguee; }