private System.IntPtr CreateModel(double[,] values)
    {
        var nbInputs = values.GetUpperBound(0) - 1;

        var nbInputRows = values.GetUpperBound(1);
        var nbInputCols = values.GetUpperBound(0);

        double[] inputs        = new double[nbInputRows * nbInputCols];
        var      inputIterator = 0;

        var nbOutputRows = values.GetUpperBound(1);
        var nbOutputCols = 1;

        double[] outputs        = new double[nbOutputRows * nbOutputCols];
        var      outputIterator = 0;

        for (int y = 0; y < values.GetUpperBound(1); y++)
        {
            for (int x = 0; x < values.GetUpperBound(0); x++)
            {
                var value = values[x, y];

                if (x == nbInputs)
                {
                    outputs[outputIterator++] = value;
                }
                else
                {
                    inputs[inputIterator++] = value;
                }
            }
        }

        return(PanebWrapper.regression_compute(nbInputRows, nbInputCols, inputs, nbOutputRows, nbOutputRows, outputs));
    }
Example #2
0
    void Start()
    {
        var inputs  = ComputeInputs();
        var outputs = ComputeOutputs();

        var weights = PanebWrapper.regression_compute(spheres.Length, 3, inputs, spheres.Length, 1, outputs);

        MoveAxis(weights);
    }