1# Licensed to the Apache Software Foundation (ASF) under one
2# or more contributor license agreements.  See the NOTICE file
3# distributed with this work for additional information
4# regarding copyright ownership.  The ASF licenses this file
5# to you under the Apache License, Version 2.0 (the
6# "License"); you may not use this file except in compliance
7# with the License.  You may obtain a copy of the License at
8#
9#  http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing,
12# software distributed under the License is distributed on an
13# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14# KIND, either express or implied.  See the License for the
15# specific language governing permissions and limitations
16# under the License.
17
18config ZSL
19	bool "Zephyr scientific library support"
20	default n
21	help
22	  This option enables the zephyr scientific library.
23
24if ZSL
25
26config ZSL_SINGLE_PRECISION
27	bool "Use single-precision floats."
28	default n
29	help
30	  Enabling this option will cause all zsl functions to use single
31	  precision (32-bit) floating point values, rather than the default of
32	  double-precision (64-bits).
33
34config ZSL_PLATFORM_OPT
35	int "Platform optimisations"
36	default 0
37	range 0 2
38	help
39	  Platform used for optimised assembly functions where possible.
40	  0 None
41	  1 ARM Thumb (GNU)
42	  2 ARM Thumb2 (GNU)
43
44config ZSL_VECTOR_INLINE
45	bool "Use inline vector functions."
46	default n
47	help
48	  Enabling this option will cause common vector functions to use inline
49	  versions, avoiding the overhead of function calls at the expense of
50	  a larger firmware image.
51
52config ZSL_MATRIX_INLINE
53	bool "Use inline matrix functions."
54	default n
55	help
56	  Enabling this option will cause common matrix functions to use inline
57	  versions, avoiding the overhead of function calls at the expense of
58	  a larger firmware image.
59
60config ZSL_BOUNDS_CHECKS
61	bool "Enable bounds checking in functions."
62	default y
63	help
64	  Enabling this option will cause common functions to ensure that requested
65	  data is within the bounds of the vector, matrix, etc. object. This should
66	  generally always be enabled for safety reasons, but you may wish to
67	  disable it in exceptional circumstances for performance reasons.
68
69	  Note that the performance gains from enabling inline functions will
70	  generally be greater than the benefit of disabling bounds checks, and
71	  with far less risk associated with the decision.
72
73	  EXTREME CARE should be taken when disabling this option since it can
74	  easily lead to stack corruption and critical firmware failures. This
75	  should only be disabled as a final option, and only on known-good
76	  and thoroughly tested code.
77
78config ZSL_SHELL
79	bool "Enable the 'zsl' shell command and core shell support"
80	default n
81	depends on SHELL
82	help
83	  Enabling this option will make the 'zsl' shell command available, and
84	  enable general zscilib shell support.
85
86config ZSL_SHELL_CLR
87	bool "Enable the 'color' shell command"
88	default n
89	depends on ZSL_SHELL
90	help
91	  Enabling this option will make the 'color' shell command available.
92
93config ZSL_SHELL_ORIENT
94	bool "Enable the 'orient' shell command"
95	default n
96	depends on ZSL_SHELL
97	help
98	  Enabling this option will make the 'orient' shell command available.
99
100config ZSL_CLR_RGBF_BOUND_CAP
101	bool "Limit RGB float values to the 0.0..1.0 range"
102	default y
103
104endif
105