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