riscv_nn_tables.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * SPDX-FileCopyrightText: Copyright 2010-2022 Arm Limited and/or its affiliates <open-source-office@arm.com>
  3. * Copyright (c) 2019 Nuclei Limited. All rights reserved.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0
  6. *
  7. * Licensed under the Apache License, Version 2.0 (the License); you may
  8. * not use this file except in compliance with the License.
  9. * You may obtain a copy of the License at
  10. *
  11. * www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing, software
  14. * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  15. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. * See the License for the specific language governing permissions and
  17. * limitations under the License.
  18. */
  19. /* ----------------------------------------------------------------------
  20. * Project: NMSIS NN Library
  21. * Title: riscv_nn_tables.h
  22. * Description: Extern declaration for NN tables
  23. *
  24. * $Date: 8 December 2022
  25. * $Revision: V.2.1.1
  26. *
  27. * Target Processor: RISC-V Cores
  28. * -------------------------------------------------------------------- */
  29. #ifndef RISCV_NN_TABLES_H
  30. #define RISCV_NN_TABLES_H
  31. #include "riscv_nn_math_types.h"
  32. /**
  33. * @brief tables for various activation functions
  34. *
  35. */
  36. extern const uint16_t sigmoid_table_uint16[256];
  37. extern const q15_t sigmoidTable_q15[256];
  38. extern const q7_t sigmoidTable_q7[256];
  39. extern const q7_t tanhTable_q7[256];
  40. extern const q15_t tanhTable_q15[256];
  41. /**
  42. * @brief 2-way tables for various activation functions
  43. *
  44. * 2-way table, H table for value larger than 1/4
  45. * L table for value smaller than 1/4, H table for remaining
  46. * We have this only for the q15_t version. It does not make
  47. * sense to have it for q7_t type
  48. */
  49. extern const q15_t sigmoidHTable_q15[192];
  50. extern const q15_t sigmoidLTable_q15[128];
  51. #endif /* RISCV_NN_TABLES_H */