コード例 #1
0
    // Récupère les données et initialise les coefficients
    private double[] InitializeLinearVariables()
    {
        IntPtr resultPtr = CPPTOUnityLibWrapper.linear_create(NbInputWithExpedient);

        double[] result = new double[NbInputWithExpedient];
        Marshal.Copy(resultPtr, result, 0, (int)NbInputWithExpedient);

        return(result);
    }
コード例 #2
0
    private void Calculate()
    {
        _nbPoints = (uint)(redSpheres.Length + blueSpheres.Length);

        _coordinates = new double[_nbPoints * NbInputs];
        _values      = new double[_nbPoints];

        _resultedCoefficients = InitializeLinearVariables();

        switch (LinearAlgorithm)
        {
        case Algorithm.Classification:
            GetCoordinatesAndValues(redSpheres, "red", Algorithm.Classification);
            GetCoordinatesAndValues(blueSpheres, "blue", Algorithm.Classification);

            CPPTOUnityLibWrapper.linear_train_classification(_resultedCoefficients, _coordinates, _values, _nbPoints, NbInputs);

            DisplayLinearClassification(whiteSpheres, _resultedCoefficients);
            DisplayLinearClassification(redSpheres, _resultedCoefficients);
            DisplayLinearClassification(blueSpheres, _resultedCoefficients);

            break;

        case Algorithm.Regression:
            GetCoordinatesAndValues(redSpheres, "red", Algorithm.Regression);
            GetCoordinatesAndValues(blueSpheres, "blue", Algorithm.Regression);

            CPPTOUnityLibWrapper.linear_train_regression(_resultedCoefficients, _coordinates, _values, _nbPoints, NbInputs);

            DisplayLinearRegression(whiteSpheres, _resultedCoefficients);

            break;

        case Algorithm.NoMatrixLibraryRegression:
            GetCoordinatesAndValues(redSpheres, "red", Algorithm.NoMatrixLibraryRegression);
            GetCoordinatesAndValues(blueSpheres, "blue", Algorithm.NoMatrixLibraryRegression);

            CPPTOUnityLibWrapper.linear_train_no_matrix_library_regression(_resultedCoefficients, _coordinates, _values,
                                                                           _nbPoints);

            DisplayLinearRegression(whiteSpheres, _resultedCoefficients);

            break;

        default:
            throw new ArgumentOutOfRangeException();
        }
    }