public float hyperbolicTf(float freq) {if (0.0f == freq) return 0.0f;final float min = tf_hyper_min;final float max = tf_hyper_max;final double base = tf_hyper_base;final float xoffset = tf_hyper_xoffset;final double x = (double)(freq - xoffset);final float result = min +(float)((max-min) / 2.0f*(( ( Math.pow(base,x) - Math.pow(base,-x) )/ ( Math.pow(base,x) + Math.pow(base,-x) ))+ 1.0d));return Float.isNaN(result) ? max : result;}

public virtual float HyperbolicTf(float freq){if (0.0f == freq){return 0.0f;}float min = tf_hyper_min;float max = tf_hyper_max;double @base = tf_hyper_base;float xoffset = tf_hyper_xoffset;double x = (double)(freq - xoffset);float result = min + (float)((max - min) / 2.0f * (((Math.Pow(@base, x) - Math.Pow(@base, -x)) / (Math.Pow(@base, x) + Math.Pow(@base, -x))) + 1.0d));return float.IsNaN(result) ? max : result;}
