/ Drivers / CMSIS / DSP / Source / SVMFunctions / arm_svm_linear_init_f16.c
arm_svm_linear_init_f16.c
 1  /* ----------------------------------------------------------------------
 2   * Project:      CMSIS DSP Library
 3   * Title:        arm_svm_linear_init_f16.c
 4   * Description:  SVM Linear 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_f16.h"
30  
31  #if defined(ARM_FLOAT16_SUPPORTED)
32  
33  #include <limits.h>
34  #include <math.h>
35  
36  /**
37   * @defgroup groupSVM SVM Functions
38   *
39   */
40  
41  /**
42    @ingroup groupSVM
43   */
44  
45  /**
46    @defgroup linearsvm Linear SVM
47  
48    Linear SVM classifier
49   */
50  
51  /**
52   * @addtogroup linearsvm
53   * @{
54   */
55  
56  
57  /**
58   * @brief        SVM linear instance init function
59   *
60   * Classes are integer used as output of the function (instead of having -1,1
61   * as class values).
62   *
63   * @param[in]    S                      Parameters for the SVM function
64   * @param[in]    nbOfSupportVectors     Number of support vectors
65   * @param[in]    vectorDimension        Dimension of vector space
66   * @param[in]    intercept              Intercept
67   * @param[in]    dualCoefficients       Array of dual coefficients
68   * @param[in]    supportVectors         Array of support vectors
69   * @param[in]    classes                Array of 2 classes ID
70   * @return none.
71   *
72   */
73  
74  
75  void arm_svm_linear_init_f16(arm_svm_linear_instance_f16 *S, 
76    uint32_t nbOfSupportVectors,
77    uint32_t vectorDimension,
78    float16_t intercept,
79    const float16_t *dualCoefficients,
80    const float16_t *supportVectors,
81    const int32_t *classes)
82  {
83     S->nbOfSupportVectors = nbOfSupportVectors;
84     S->vectorDimension = vectorDimension;
85     S->intercept = intercept;
86     S->dualCoefficients = dualCoefficients;
87     S->supportVectors = supportVectors;
88     S->classes = classes;
89  }
90  
91  
92  
93  /**
94   * @} end of linearsvm group
95   */
96  
97  #endif /* #if defined(ARM_FLOAT16_SUPPORTED) */ 
98