blob: 65e29ea4ef521e688ec0a88313bd78be420d4ba1 [file] [log] [blame]
Jason Sams135c4b72013-12-11 18:24:45 -08001#
2# Copyright (C) 2013 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17start:
18w: 2, 3, 4
19t: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64
20t: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64
21name: convert_uchar#1
22arg: #2#1
23ret: #3#1
24comment:
25 Component wise conversion from #2#1 to #3#1
26version: 9
27end:
28
29start:
30w: 1, 2, 3, 4
31t: f32
32name: acos
33ret: #2#1
34arg: #2#1
35comment:
36 acos
37version: 9
38end:
39
40start:
41w: 1, 2, 3, 4
42t: f32
43name: acosh
44ret: #2#1
45arg: #2#1
46comment:
47 acosh
48version: 9
49end:
50
51start:
52w: 1, 2, 3, 4
53t: f32
54name: acospi
55ret: #2#1
56arg: #2#1
57comment:
58 acospi
59version: 9
60end:
61
62start:
63w: 1, 2, 3, 4
64t: f32
65name: asin
66ret: #2#1
67arg: #2#1
68comment:
69 asin
70version: 9
71end:
72
73start:
74w: 1, 2, 3, 4
75t: f32
76name: asinh
77ret: #2#1
78arg: #2#1
79comment:
80 asinh
81version: 9
82end:
83
84start:
85w: 1, 2, 3, 4
86t: f32
87name: asinpi
88ret: #2#1
89arg: #2#1
90comment:
91 Return the inverse sine divided by PI.
92version: 9
93end:
94
95start:
96w: 1, 2, 3, 4
97t: f32
98name: atan
99ret: #2#1
100arg: #2#1
101comment:
102 Return the inverse tangent.
103version: 9
104end:
105
106start:
107w: 1, 2, 3, 4
108t: f32
109name: atan2
110ret: #2#1
111arg: #2#1 y
112arg: #2#1 x
113comment:
114 Return the inverse tangent of y / x.
115version: 9
116end:
117
118start:
119w: 1, 2, 3, 4
120t: f32
121name: atanh
122ret: #2#1
123arg: #2#1
124comment:
125 Return the inverse hyperbolic tangent.
126version: 9
127end:
128
129start:
130w: 1, 2, 3, 4
131t: f32
132name: atanpi
133ret: #2#1
134arg: #2#1
135comment:
136 Return the inverse tangent divided by PI.
137version: 9
138end:
139
140start:
141w: 1, 2, 3, 4
142t: f32
143name: atan2pi
144ret: #2#1
145arg: #2#1 y
146arg: #2#1 x
147comment:
148 Return the inverse tangent of y / x, divided by PI.
149version: 9
150end:
151
152start:
153w: 1, 2, 3, 4
154t: f32
155name: cbrt
156ret: #2#1
157arg: #2#1
158comment:
159 Return the cube root.
160version: 9
161end:
162
163start:
164w: 1, 2, 3, 4
165t: f32
166name: ceil
167ret: #2#1
168arg: #2#1
169comment:
170 Return the smallest integer not less than a value.
171version: 9
172end:
173
174start:
175w: 1, 2, 3, 4
176t: f32
177name: copysign
178ret: #2#1
179arg: #2#1 x
180arg: #2#1 y
181comment:
182 Copy the sign bit from y to x.
183version: 9
184end:
185
186start:
187w: 1, 2, 3, 4
188t: f32
189name: cos
190ret: #2#1
191arg: #2#1
192comment:
193 Return the cosine.
194version: 9
195end:
196
197start:
198w: 1, 2, 3, 4
199t: f32
200name: cosh
201ret: #2#1
202arg: #2#1
203comment:
204 Return the hypebolic cosine.
205version: 9
206end:
207
208start:
209w: 1, 2, 3, 4
210t: f32
211name: cospi
212ret: #2#1
213arg: #2#1
214comment:
215 Return the cosine of the value * PI.
216version: 9
217end:
218
219start:
220w: 1, 2, 3, 4
221t: f32
222name: erfc
223ret: #2#1
224arg: #2#1
225comment:
226 Return the complementary error function.
227version: 9
228end:
229
230start:
231w: 1, 2, 3, 4
232t: f32
233name: erf
234ret: #2#1
235arg: #2#1
236comment:
237 Return the error function.
238version: 9
239end:
240
241start:
242w: 1, 2, 3, 4
243t: f32
244name: exp
245ret: #2#1
246arg: #2#1
247comment:
248 Return e ^ value.
249version: 9
250end:
251
252start:
253w: 1, 2, 3, 4
254t: f32
255name: exp2
256ret: #2#1
257arg: #2#1
258comment:
259 Return 2 ^ value.
260version: 9
261end:
262
263start:
264w: 1, 2, 3, 4
265t: f32
266name: exp10
267ret: #2#1
268arg: #2#1
269comment:
270 Return 10 ^ value.
271version: 9
272end:
273
274start:
275w: 1, 2, 3, 4
276t: f32
277name: expm1
278ret: #2#1
279arg: #2#1
280comment:
281 Return (e ^ value) - 1.
282version: 9
283end:
284
285start:
286w: 1, 2, 3, 4
287t: f32
288name: fabs
289ret: #2#1
290arg: #2#1
291comment:
292 Return the absolute value of a value.
293version: 9
294end:
295
296start:
297w: 1, 2, 3, 4
298t: f32
299name: fdim
300ret: #2#1
301arg: #2#1
302comment:
303 Return the positive difference between two values.
304version: 9
305end:
306
307start:
308w: 1, 2, 3, 4
309t: f32
310name: floor
311ret: #2#1
312arg: #2#1
313comment:
314 Return the smallest integer not greater than a value.
315version: 9
316end:
317
318start:
319w: 1, 2, 3, 4
320t: f32
321name: fma
322ret: #2#1
323arg: #2#1 a
324arg: #2#1 b
325arg: #2#1 c
326comment:
327 Return (a * b) + c.
328version: 9
329end:
330
331start:
332w: 1, 2, 3, 4
333t: f32
334name: fmax
335ret: #2#1
336arg: #2#1 x
337arg: #2#1 y
338comment:
339 Return (x < y ? y : x)
340version: 9
341end:
342
343start:
344w: 1, 2, 3, 4
345t: f32
346name: fmax
347ret: #2#1
348arg: #2#1 x
349arg: #2 y
350comment:
351 Return (x < y ? y : x)
352version: 9
353end:
354
355start:
356w: 1, 2, 3, 4
357t: f32
358name: fmin
359ret: #2#1
360arg: #2#1 x
361arg: #2#1 y
362comment:
363 Return (x > y ? y : x)
364version: 9
365end:
366
367start:
368w: 1, 2, 3, 4
369t: f32
370name: fmin
371ret: #2#1
372arg: #2#1 x
373arg: #2 y
374comment:
375 Return (x > y ? y : x)
376version: 9
377end:
378
379start:
380w: 1, 2, 3, 4
381t: f32
382name: fmod
383ret: #2#1
384arg: #2#1 x
385arg: #2#1 y
386comment:
387 Return the remainder from x / y
388version: 9
389end:
390
391start:
392w: 1, 2, 3, 4
393t: f32
394name: fract
395ret: #2#1
396arg: #2#1 v
397arg: #2#1 *iptr
398comment:
399 Return fractional part of v
400
401 @param iptr iptr[0] will be set to the floor of the input value.
402version: 9
403end:
404
405start:
406w: 1, 2, 3, 4
407t: f32
408name: fract
409ret: #2#1
410arg: #2#1 v
411comment:
412 Return fractional part of v
413inline:
414 #2#1 unused;
415 return fract(v, &unused);
416version: 9
417end:
418
419start:
420w: 1, 2, 3, 4
421t: f32
422name: frexp
423ret: #2#1
424arg: #2#1 v
425arg: int#1 *iptr
426comment:
427 Return the mantissa and place the exponent into iptr[0]
428
429 @param v Supports float, float2, float3, float4.
430version: 9
431end:
432
433start:
434w: 1, 2, 3, 4
435t: f32
436name: hypot
437ret: #2#1
438arg: #2#1 x
439arg: #2#1 y
440comment:
441 Return sqrt(x*x + y*y)
442version: 9
443end:
444
445start:
446w: 1, 2, 3, 4
447t: f32
448name: ilogb
449ret: #2#1
450arg: #2#1
451comment:
452 Return the integer exponent of a value
453version: 9
454end:
455
456start:
457w: 1, 2, 3, 4
458t: f32
459name: ilogb
460ret: #2#1
461arg: #2#1
462arg: int#1
463comment:
464 Return (x * 2^y)
465version: 9
466end:
467
468start:
469w: 1, 2, 3, 4
470t: f32
471name: ilogb
472ret: #2#1
473arg: #2#1
474arg: int
475comment:
476 Return (x * 2^y)
477version: 9
478end:
479
480start:
481w: 1, 2, 3, 4
482t: f32
483name: lgamma
484ret: #2#1
485arg: #2#1 x
486comment:
487 Return the log gamma and sign
488version: 9
489end:
490
491start:
492w: 1, 2, 3, 4
493t: f32
494name: lgamma
495ret: #2#1
496arg: #2#1 x
497arg: int#1 *y
498comment:
499 Return the log gamma and sign
500version: 9
501end:
502
503start:
504w: 1, 2, 3, 4
505t: f32
506name: log
507ret: #2#1
508arg: #2#1 x
509comment:
510 Return the natural logarithm.
511version: 9
512end:
513
514start:
515w: 1, 2, 3, 4
516t: f32
517name: log2
518ret: #2#1
519arg: #2#1 x
520comment:
521 Return the base 2 logarithm.
522version: 9
523end:
524
525start:
526w: 1, 2, 3, 4
527t: f32
528name: log10
529ret: #2#1
530arg: #2#1 x
531comment:
532 Return the base 10 logarithm.
533version: 9
534end:
535
536start:
537w: 1, 2, 3, 4
538t: f32
539name: log1p
540ret: #2#1
541arg: #2#1 x
542comment:
543 Return the natural logarithm of (v + 1.0f)
544version: 9
545end:
546
547start:
548w: 1, 2, 3, 4
549t: f32
550name: logb
551ret: #2#1
552arg: #2#1 x
553comment:
554 Compute the exponent of the value.
555version: 9
556end:
557
558start:
559w: 1, 2, 3, 4
560t: f32
561name: mad
562ret: #2#1
563arg: #2#1 a
564arg: #2#1 b
565arg: #2#1 c
566comment:
567 Compute (a * b) + c
568version: 9
569end:
570
571start:
572w: 1, 2, 3, 4
573t: f32
574name: modf
575ret: #2#1
576arg: #2#1 x
577arg: #2#1 *iret
578comment:
579 Return the integral and fractional components of a number.
580
581 @param x Source value
582 @param iret iret[0] will be set to the integral portion of the number.
583 @return The floating point portion of the value.
584version: 9
585end:
586
587start:
588w: 1
589t: f32
590name: nan
591ret: #2#1
592arg: uint#1
593comment:
594 generate a nan
595version: 9
596end:
597
598start:
599w: 1, 2, 3, 4
600t: f32
601name: nextafter
602ret: #2#1
603arg: #2#1 x
604arg: #2#1 y
605comment:
606 Return the next floating point number from x towards y.
607version: 9
608end:
609
610start:
611w: 1, 2, 3, 4
612t: f32
613name: pow
614ret: #2#1
615arg: #2#1 x
616arg: #2#1 y
617comment:
618 Return x ^ y.
619version: 9
620end:
621
622start:
623w: 1, 2, 3, 4
624t: f32
625name: pown
626ret: #2#1
627arg: #2#1 x
628arg: int#1 y
629comment:
630 Return x ^ y.
631version: 9
632end:
633
634start:
635w: 1, 2, 3, 4
636t: f32
637name: powr
638ret: #2#1
639arg: #2#1 x
640arg: #2#1 y
641comment:
642 Return x ^ y.
643 y must be > 0
644version: 9
645end:
646
647start:
648w: 1, 2, 3, 4
649t: f32
650name: remainder
651ret: #2#1
652arg: #2#1 x
653arg: #2#1 y
654comment:
655 Return round x/y to the nearest integer then compute the remander.
656version: 9
657end:
658
659start:
660w: 1, 2, 3, 4
661t: f32
662name: remquo
663ret: #2#1
664arg: #2#1
665arg: #2#1
666arg: int#1 *
667comment:
668 todo
669version: 9
670end:
671
672start:
673w: 1, 2, 3, 4
674t: f32
675name: rint
676ret: #2#1
677arg: #2#1
678comment:
679 Round to the nearest integral value.
680version: 9
681end:
682
683start:
684w: 1, 2, 3, 4
685t: f32
686name: rootn
687ret: #2#1
688arg: #2#1 v
689arg: int#1 n
690comment:
691 Compute the Nth root of a value.
692version: 9
693end:
694
695start:
696w: 1, 2, 3, 4
697t: f32
698name: round
699ret: #2#1
700arg: #2#1
701comment:
702 Round to the nearest integral value. Half values are rounded away from zero.
703version: 9
704end:
705
706start:
707w: 1, 2, 3, 4
708t: f32
709name: rsqrt
710ret: #2#1
711arg: #2#1
712comment:
713 Return (1 / sqrt(value)).
714version: 9
715end:
716
717start:
718w: 1, 2, 3, 4
719t: f32
720name: sqrt
721ret: #2#1
722arg: #2#1
723comment:
724 Return the square root of a value.
725version: 9
726end:
727
728start:
729w: 1, 2, 3, 4
730t: f32
731name: sin
732ret: #2#1
733arg: #2#1
734comment:
735 Return the sine of a value specified in radians.
736version: 9
737end:
738
739start:
740w: 1, 2, 3, 4
741t: f32
742name: sincos
743ret: #2#1
744arg: #2#1 v
745arg: #2#1 *cosptr
746comment:
747 Return the sine and cosine of a value.
748
749 @return sine
750 @param v The incoming value in radians
751 @param *cosptr cosptr[0] will be set to the cosine value.
752version: 9
753end:
754
755start:
756w: 1, 2, 3, 4
757t: f32
758name: sinh
759ret: #2#1
760arg: #2#1
761comment:
762 Return the hyperbolic sine of a value specified in radians.
763version: 9
764end:
765
766start:
767w: 1, 2, 3, 4
768t: f32
769name: sinpi
770ret: #2#1
771arg: #2#1
772comment:
773 Return the sin(v * PI).
774version: 9
775end:
776
777start:
778w: 1, 2, 3, 4
779t: f32
780name: tan
781ret: #2#1
782arg: #2#1
783comment:
784 Return the tangent of a value.
785version: 9
786end:
787
788start:
789w: 1, 2, 3, 4
790t: f32
791name: tanh
792ret: #2#1
793arg: #2#1
794comment:
795 Return the hyperbolic tangent of a value.
796version: 9
797end:
798
799start:
800w: 1, 2, 3, 4
801t: f32
802name: tanpi
803ret: #2#1
804arg: #2#1
805comment:
806 Return tan(v * PI)
807version: 9
808end:
809
810start:
811w: 1, 2, 3, 4
812t: f32
813name: tgamma
814ret: #2#1
815arg: #2#1
816comment:
817 Compute the gamma function of a value.
818version: 9
819end:
820
821start:
822w: 1, 2, 3, 4
823t: f32
824name: trunc
825ret: #2#1
826arg: #2#1
827comment:
828 ound to integral using truncation.
829version: 9
830end:
831
832# int functions
833
834start:
835w: 1, 2, 3, 4
836t: i8, i16, i32
837name: abs
838ret: #2#1
839arg: #2#1 value
840comment:
841 Return the absolute value of a value.
842version: 9
843end:
844
845start:
846w: 1, 2, 3, 4
847t: u8, u16, u32, i8, i16, i32
848name: clz
849ret: #2#1
850arg: #2#1 value
851comment:
852 Return the number of leading 0-bits in a value.
853version: 9
854end:
855
856start:
857w: 1, 2, 3, 4
858t: f32
859name: min
860ret: #2#1
861arg: #2#1
862arg: #2#1
863comment:
864 Return the minimum value from two arguments
865version: 9
866end:
867
868start:
869w: 1, 2, 3, 4
870t: i8 i16 i32 u8 u16 u32
871name: min
872ret: #2#1
873arg: #2#1 v1
874arg: #2#1 v2
875comment:
876 Return the minimum value from two arguments
877inline:
878 return (v1 < v2 ? v1 : v2);
879version: 9 19
880end:
881
882start:
883w: 1, 2, 3, 4
884t: i8 i16 i32 i64 u8 u16 u32 u64
885name: min
886ret: #2#1
887arg: #2#1 v1
888arg: #2#1 v2
889comment:
890 Return the minimum value from two arguments
891version: 19
892end:
893
894start:
895w: 1, 2, 3, 4
896t: f32
897name: max
898ret: #2#1
899arg: #2#1
900arg: #2#1
901comment:
902 Return the maximum value from two arguments
903version: 9
904end:
905
906start:
907w: 1, 2, 3, 4
908t: i8 i16 i32 u8 u16 u32
909name: max
910ret: #2#1
911arg: #2#1 v1
912arg: #2#1 v2
913comment:
914 Return the maximum value from two arguments
915inline:
916 return (v1 < v2 ? v1 : v2);
917version: 9 19
918end:
919
920start:
921w: 1, 2, 3, 4
922t: i8 i16 i32 i64 u8 u16 u32 u64
923name: max
924ret: #2#1
925arg: #2#1 v1
926arg: #2#1 v2
927comment:
928 Return the maximum value from two arguments
929version: 19
930end:
931
932start:
933w: 1, 2, 3, 4
934t: f32
935name: clamp
936ret: #2#1
937arg: #2#1 value
938arg: #2#1 min_value
939arg: #2#1 max_value
940comment:
941 Clamp a value to a specified high and low bound.
942
943 @param amount value to be clamped. Supports 1,2,3,4 components
944 @param min_value Lower bound, must be scalar or matching vector.
945 @param max_value High bound, must match type of low
946version: 9
947end:
948
949start:
950w: 1, 2, 3, 4
951t: f32
952name: clamp
953ret: #2#1
954arg: #2#1 value
955arg: #2 min_value
956arg: #2 max_value
957comment:
958 Clamp a value to a specified high and low bound.
959
960 @param amount value to be clamped. Supports 1,2,3,4 components
961 @param min_value Lower bound, must be scalar or matching vector.
962 @param max_value High bound, must match type of low
963version: 9
964end:
965
966start:
967w: 1, 2, 3, 4
968t: u8, u16, u32, u64, i8, i16, i32, i64
969name: clamp
970ret: #2#1
971arg: #2#1 value
972arg: #2#1 min_value
973arg: #2#1 max_value
974comment:
975 Clamp a value to a specified high and low bound.
976
977 @param amount value to be clamped. Supports 1,2,3,4 components
978 @param min_value Lower bound, must be scalar or matching vector.
979 @param max_value High bound, must match type of low
980version: 19
981end:
982
983start:
984w: 1, 2, 3, 4
985t: u8, u16, u32, u64, i8, i16, i32, i64
986name: clamp
987ret: #2#1
988arg: #2#1 value
989arg: #2 min_value
990arg: #2 max_value
991comment:
992 Clamp a value to a specified high and low bound.
993
994 @param amount value to be clamped. Supports 1,2,3,4 components
995 @param min_value Lower bound, must be scalar or matching vector.
996 @param max_value High bound, must match type of low
997version: 19
998end:
999
1000start:
1001w: 1, 2, 3, 4
1002t: f32
1003name: degrees
1004ret: #2#1
1005arg: #2#1 value
1006comment:
1007 Convert from radians to degrees.
1008version: 9
1009end:
1010
1011start:
1012w: 1, 2, 3, 4
1013t: f32
1014name: mix
1015ret: #2#1
1016arg: #2#1 start
1017arg: #2#1 stop
1018arg: #2#1 amount
1019comment:
1020 return start + ((stop - start) * amount)
1021version: 9
1022end:
1023
1024start:
1025w: 1, 2, 3, 4
1026t: f32
1027name: mix
1028ret: #2#1
1029arg: #2#1 start
1030arg: #2#1 stop
1031arg: #2 amount
1032comment:
1033 return start + ((stop - start) * amount)
1034version: 9
1035end:
1036
1037start:
1038w: 1, 2, 3, 4
1039t: f32
1040name: radians
1041ret: #2#1
1042arg: #2#1 value
1043comment:
1044 Convert from degrees to radians.
1045version: 9
1046end:
1047
1048start:
1049w: 1, 2, 3, 4
1050t: f32
1051name: step
1052ret: #2#1
1053arg: #2#1 value
1054comment:
1055 if (v < edge)
1056 return 0.f;
1057 else
1058 return 1.f;
1059version: 9
1060end:
1061
1062start:
1063w: 1, 2, 3, 4
1064t: f32
1065name: step
1066ret: #2#1
1067arg: #2 edge
1068arg: #2 v
1069comment:
1070 if (v < edge)
1071 return 0.f;
1072 else
1073 return 1.f;
1074version: 9
1075end:
1076
1077start:
1078w: 1, 2, 3, 4
1079t: f32
1080name: sign
1081ret: #2#1
1082arg: #2 v
1083comment:
1084 Return the sign of a value.
1085
1086 if (v < 0) return -1.f;
1087 else if (v > 0) return 1.f;
1088 else return 0.f;
1089version: 9
1090end:
1091
1092start:
1093w: 3, 4
1094t: f32
1095name: cross
1096ret: #2#1
1097arg: #2#1 lhs
1098arg: #2#1 rhs
1099comment:
1100 Compute the cross product of two vectors.
1101version: 9
1102end:
1103
1104start:
1105w: 1, 2, 3, 4
1106t: f32
1107name: dot
1108ret: #2
1109arg: #2#1 lhs
1110arg: #2#1 rhs
1111comment:
1112 Compute the dot product of two vectors.
1113version: 9
1114end:
1115
1116start:
1117w: 1, 2, 3, 4
1118t: f32
1119name: length
1120ret: #2
1121arg: #2#1 v
1122comment:
1123 Compute the length of a vector.
1124version: 9
1125end:
1126
1127start:
1128w: 1, 2, 3, 4
1129t: f32
1130name: distance
1131ret: #2
1132arg: #2#1 lhs
1133arg: #2#1 rhs
1134comment:
1135 Compute the distance between two points.
1136version: 9
1137end:
1138
1139start:
1140w: 1, 2, 3, 4
1141t: f32
1142name: normalize
1143ret: #2#1
1144arg: #2#1 v
1145comment:
1146 Normalize a vector.
1147version: 9
1148end:
1149
1150start:
1151w: 1, 2, 3, 4
1152t: f32
1153name: half_recip
1154ret: #2#1
1155arg: #2#1 v
1156comment:
1157 Return the approximate reciprocal of a value.
1158version: 17
1159end:
1160
1161start:
1162w: 1, 2, 3, 4
1163t: f32
1164name: half_sqrt
1165ret: #2#1
1166arg: #2#1 v
1167comment:
1168 Return the approximate square root of a value.
1169version: 17
1170end:
1171
1172start:
1173w: 1, 2, 3, 4
1174t: f32
1175name: half_rsqrt
1176ret: #2#1
1177arg: #2#1 v
1178comment:
1179 Return the approximate value of (1.f / sqrt(value)).
1180version: 17
1181end:
1182
1183start:
1184w: 1, 2, 3, 4
1185t: f32
1186name: fast_length
1187ret: #2
1188arg: #2#1 v
1189comment:
1190 Compute the approximate length of a vector.
1191version: 17
1192end:
1193
1194start:
1195w: 1, 2, 3, 4
1196t: f32
1197name: fast_distance
1198ret: #2
1199arg: #2#1 lhs
1200arg: #2#1 rhs
1201comment:
1202 Compute the approximate distance between two points.
1203version: 17
1204end:
1205
1206start:
1207w: 1, 2, 3, 4
1208t: f32
1209name: fast_normalize
1210ret: #2#1
1211arg: #2#1 v
1212comment:
1213 Approximately normalize a vector.
1214version: 17
1215end:
1216
1217start:
1218w: 1, 2, 3, 4
1219t: f32
1220name: native_exp
1221ret: #2#1
1222arg: #2#1 v
1223comment:
1224 Fast approximate exp
1225 valid for inputs -86.f to 86.f
1226 Max 8192 ulps of error
1227version: 18
1228end:
1229
1230start:
1231w: 1, 2, 3, 4
1232t: f32
1233name: native_exp2
1234ret: #2#1
1235arg: #2#1 v
1236comment:
1237 Fast approximate exp2
1238 valid for inputs -125.f to 125.f
1239 Max 8192 ulps of error
1240version: 18
1241end:
1242
1243start:
1244w: 1, 2, 3, 4
1245t: f32
1246name: native_exp10
1247ret: #2#1
1248arg: #2#1 v
1249comment:
1250 Fast approximate exp10
1251 valid for inputs -37.f to 37.f
1252 Max 8192 ulps of error
1253version: 18
1254end:
1255
1256start:
1257w: 1, 2, 3, 4
1258t: f32
1259name: native_log
1260ret: #2#1
1261arg: #2#1 v
1262comment:
1263 Fast approximate log
1264version: 18
1265end:
1266
1267start:
1268w: 1, 2, 3, 4
1269t: f32
1270name: native_log2
1271ret: #2#1
1272arg: #2#1 v
1273comment:
1274 Fast approximate log2
1275version: 18
1276end:
1277
1278start:
1279w: 1, 2, 3, 4
1280t: f32
1281name: native_log10
1282ret: #2#1
1283arg: #2#1 v
1284comment:
1285 Fast approximate log10
1286version: 18
1287end:
1288
1289start:
1290w: 1, 2, 3, 4
1291t: f32
1292name: native_powr
1293ret: #2#1
1294arg: #2#1 v
1295arg: #2#1 y
1296comment:
1297 Fast approximate v ^ y
1298version: 18
1299end:
1300
1301