/ Drivers / CMSIS / DSP / Source / SVMFunctions / arm_svm_polynomial_init_f32.c
arm_svm_polynomial_init_f32.c
 1  /* ----------------------------------------------------------------------
 2   * Project:      CMSIS DSP Library
 3   * Title:        arm_svm_polynomial_init_f32.c
 4   * Description:  SVM Polynomial Instance Initialization
 5   *
 6   * $Date:        23 April 2021
 7   * $Revision:    V1.9.0
 8   *
 9   * Target Processor: Cortex-M and Cortex-A cores
10   * -------------------------------------------------------------------- */
11  /*
12   * Copyright (C) 2010-2021 ARM Limited or its affiliates. All rights reserved.
13   *
14   * SPDX-License-Identifier: Apache-2.0
15   *
16   * Licensed under the Apache License, Version 2.0 (the License); you may
17   * not use this file except in compliance with the License.
18   * You may obtain a copy of the License at
19   *
20   * www.apache.org/licenses/LICENSE-2.0
21   *
22   * Unless required by applicable law or agreed to in writing, software
23   * distributed under the License is distributed on an AS IS BASIS, WITHOUT
24   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25   * See the License for the specific language governing permissions and
26   * limitations under the License.
27   */
28  
29  #include "dsp/svm_functions.h"
30  #include <limits.h>
31  #include <math.h>
32  
33  /**
34    @ingroup groupSVM
35   */
36  
37  /**
38    @defgroup polysvm Polynomial SVM
39  
40    Polynomial SVM classifier
41   */
42  
43  /**
44   * @addtogroup polysvm
45   * @{
46   */
47  
48  
49  /**
50   * @brief        SVM polynomial instance init function
51   *
52   * Classes are integer used as output of the function (instead of having -1,1
53   * as class values).
54   *
55   * @param[in]    S                      points to an instance of the polynomial SVM structure.
56   * @param[in]    nbOfSupportVectors     Number of support vectors
57   * @param[in]    vectorDimension        Dimension of vector space
58   * @param[in]    intercept              Intercept
59   * @param[in]    dualCoefficients       Array of dual coefficients
60   * @param[in]    supportVectors         Array of support vectors
61   * @param[in]    classes                Array of 2 classes ID
62   * @param[in]    degree                 Polynomial degree
63   * @param[in]    coef0                  coeff0 (scikit-learn terminology)
64   * @param[in]    gamma                  gamma (scikit-learn terminology)
65   * @return none.
66   *
67   */
68  
69  
70  void arm_svm_polynomial_init_f32(arm_svm_polynomial_instance_f32 *S, 
71    uint32_t nbOfSupportVectors,
72    uint32_t vectorDimension,
73    float32_t intercept,
74    const float32_t *dualCoefficients,
75    const float32_t *supportVectors,
76    const int32_t *classes,
77    int32_t      degree,
78    float32_t coef0,
79    float32_t gamma
80    )
81  {
82     S->nbOfSupportVectors = nbOfSupportVectors;
83     S->vectorDimension = vectorDimension;
84     S->intercept = intercept;
85     S->dualCoefficients = dualCoefficients;
86     S->supportVectors = supportVectors;
87     S->classes = classes;
88     S->degree = degree;
89     S->coef0 = coef0;
90     S->gamma = gamma;
91  }
92  
93  
94  
95  /**
96   * @} end of polysvm group
97   */