public static double Q(this ScaleFunction scaleFunction, double k, double compression, double n) { switch (scaleFunction) { case ScaleFunction.K_0: return(2 * k / compression); case ScaleFunction.K_1: return(0); case ScaleFunction.K_1_Fast: return(0); case ScaleFunction.K_2: return(0); case ScaleFunction.K_2_NO_NORM: return(0); case ScaleFunction.K_3: return(0); case ScaleFunction.K_3_NO_NORM: return(0); default: return(0); } }
public static double K(this ScaleFunction scaleFunction, double q, double normalizer) { switch (scaleFunction) { case ScaleFunction.K_0: return(normalizer * q); case ScaleFunction.K_1: return(0); case ScaleFunction.K_1_Fast: return(0); case ScaleFunction.K_2: return(0); case ScaleFunction.K_2_NO_NORM: return(0); case ScaleFunction.K_3: return(0); case ScaleFunction.K_3_NO_NORM: return(0); default: return(0); } }
public static double Normalizer(this ScaleFunction scaleFunction, double compresison, double n) { switch (scaleFunction) { case ScaleFunction.K_0: return(compresison / 2); case ScaleFunction.K_1: return(0); case ScaleFunction.K_1_Fast: return(0); case ScaleFunction.K_2: return(0); case ScaleFunction.K_2_NO_NORM: return(0); case ScaleFunction.K_3: return(0); case ScaleFunction.K_3_NO_NORM: return(0); default: return(0); } }
public void DrawBackBuffer(GraphScaleData scaleData) { if (Hide || _backData == null) { return; } float height = ScaleFunction.ScaledHeight(scaleData); Matrix4 transform = Matrix4.CreateTranslation(scaleData.XShift, 0, 0) * Matrix4.Scale(2 / scaleData.BaseScale, 2 / height, 1) * Matrix4.CreateTranslation(-1, -1, 0); GL.UniformMatrix4(_shaderProgram.UniformTransform, false, ref transform); if (_drawMode == BeginMode.Lines || _drawMode == BeginMode.LineLoop || _drawMode == BeginMode.LineStrip) { GL.LineWidth(2f); } else if (_drawMode == BeginMode.Points) { GL.PointSize(2f); } if (_alphaBlend > 0) { Color4 col = Color; col.A = 1 - _alphaBlend; GL.Uniform4(_shaderProgram.UniformColor, col); } else { GL.Uniform4(_shaderProgram.UniformColor, Color); } if (_graphType == GraphType.SolidGraph) { _backBuffer.SetAttributeInfo(_shaderProgram.AttributeCoord2D, 2); _backBuffer.BeginDraw(); _backBuffer.Draw(_drawMode); _backBuffer.EndDraw(); _backBuffer.SetAttributeInfo(_shaderProgram.AttributeCoord2D, 2, false, 2 * Vector2.SizeInBytes); GL.Uniform4(_shaderProgram.UniformColor, Color4.Black); GL.LineWidth(1f); _backBuffer.BeginDraw(); _backBuffer.Draw(BeginMode.LineStrip, _backData.Length / 2); _backBuffer.EndDraw(); } else { _backBuffer.BeginDraw(); _backBuffer.Draw(_drawMode, _backData.Length / 2); _backBuffer.EndDraw(); } }
public Position3D Calculate(int row, int col) { var scaledElementWidth = _elementSize.Width * ScaleFunction.ScaleX(row); var elementsFromCenter = (col - ((ElementsPerLine - 1.0) / 2.0)); var distanceFromCenter = scaledElementWidth * elementsFromCenter; var x = _windowSize.Width / 2 - distanceFromCenter - _elementSize.Width / 2.0; var alignment = elementsFromCenter > 0.1 ? HorizontalAlignment.Right : (elementsFromCenter < 0.1 ? HorizontalAlignment.Left : HorizontalAlignment.Center); return(new Position3D(x, ScaleFunction.SqueezeFactorY(row) * _elementSize.Height, ScaleFunction.ScaleX(row), ScaleFunction.ScaleY(row), alignment, elementsFromCenter)); }
public Tout GetValue() { return(ScaleFunction.Scale(Value)); }
public Instance(ScaleFunction sf, Vector3 o) { CalcScale = sf; offset = o; }
internal double Scale(double value, ScaleFunction scaleFunction) { /*double non_zero, double abs_sum, double srsos, double column_min, double column_max, double average, double stdev,*/ var sp = this; if (sp == null) { return(value); } switch (scaleFunction) { case ScaleFunction.None: return(value); case ScaleFunction.Rescale: var x = (RescaleScaleMax - RescaleScaleMin) * (value - sp.ColumnMin); var y = sp.ColumnMax - sp.ColumnMin; var z = RescaleScaleMin; if (y == 0) { return(0); } var rescale = x / y + z; return(rescale); case ScaleFunction.Normalisation: if (sp.ColumnMax - sp.ColumnMin == 0) { return(0); } var meanNorm = (value - sp.Average) / (sp.ColumnMax - sp.ColumnMin); return(meanNorm); case ScaleFunction.Standardisation: if (sp.Stdev == 0) { return(0); } var standardisation = (value - sp.Average) / sp.Stdev; return(standardisation); case ScaleFunction.L0Norm: if (sp.NonZero == 0) { return(0); } return(value / sp.NonZero); case ScaleFunction.L1Norm: if (sp.AbsSum == 0) { return(0); } return(value / sp.AbsSum); case ScaleFunction.L2Norm: if (sp.Srsos == 0) { return(0); } return(value / sp.Srsos); default: throw new ArgumentOutOfRangeException(nameof(scaleFunction)); //return 0; } }
internal double[] Scale(double[] values, ScaleFunction scaleFunction) { return(values == null || values.Length == 0 ? Array.Empty <double>() : values.Select(a => Scale(a, scaleFunction)).ToArray()); }