source: soft/giet_vm/applications/rosenfeld/nrc2/include/nrmem1.h @ 823

Last change on this file since 823 was 823, checked in by meunier, 8 years ago
  • Improved scripts for simulations and graphes
  • Continued to clean up the lib nrc2 (from nrio2x.x to nrmem1.c)
  • Added a version (Fast - Parmerge - No stats)
File size: 3.6 KB
Line 
1/* ---------------- */
2/* --- nrmem1.h --- */
3/* ---------------- */
4
5/*
6 * Copyright (c) 2000-2014, Lionel Lacassagne, All rights reserved
7 * Univ Paris Sud XI, CNRS
8 *
9*/
10
11#ifndef __NRMEM1_H__
12#define __NRMEM1_H__
13
14
15#define dup_type_vector(t) \
16void short_name(t,dup_,vector)(t * X, int32_t nl, int32_t nh, t * Y);
17
18dup_type_vector(int8_t);
19dup_type_vector(uint8_t);
20dup_type_vector(int16_t);
21dup_type_vector(uint16_t);
22dup_type_vector(int32_t);
23dup_type_vector(uint32_t);
24dup_type_vector(int64_t);
25dup_type_vector(uint64_t);
26dup_type_vector(float);
27dup_type_vector(double);
28dup_type_vector(rgb8);
29dup_type_vector(rgbx8);
30
31/* --------------------- */
32/* --- split & merge --- */
33/* --------------------- */
34
35void split_rgb8vector(rgb8 * X, int32_t nl, int32_t nh,  uint8_t * R,  uint8_t * G,  uint8_t * B);
36void split_rgb32vector(rgb32 * X, int32_t nl, int32_t nh, uint32_t * R, uint32_t * G, uint32_t * B);
37
38void merge_rgb8vector(uint8_t * R, uint8_t * G, uint8_t * B, int32_t nl, int32_t nh, rgb8 * X);
39void merge_rgb32vector(uint32_t * R, uint32_t * G, uint32_t * B, int32_t nl, int32_t nh, rgb32 * X);
40
41
42
43/* ---------------- */
44/* -- Conversion -- */
45/* ---------------- */
46
47#define convert_type1_vector_type2_vector(t1, t2) \
48void short_name(t1,convert_,short_name(t2,vector_,vector))(t1 * X, int32_t nl, int32_t nh, t2 * Y);
49
50convert_type1_vector_type2_vector(int8_t,int16_t);
51convert_type1_vector_type2_vector(int8_t,int32_t);
52convert_type1_vector_type2_vector(int8_t,float);
53convert_type1_vector_type2_vector(int8_t,double);
54convert_type1_vector_type2_vector(uint8_t,uint16_t);
55convert_type1_vector_type2_vector(uint8_t,uint32_t);
56convert_type1_vector_type2_vector(uint8_t,float);
57convert_type1_vector_type2_vector(uint8_t,double);
58convert_type1_vector_type2_vector(int16_t,int32_t);
59convert_type1_vector_type2_vector(int16_t,float);
60convert_type1_vector_type2_vector(int16_t,double);
61convert_type1_vector_type2_vector(uint16_t,uint32_t);
62convert_type1_vector_type2_vector(uint16_t,float);
63convert_type1_vector_type2_vector(uint16_t,double);
64convert_type1_vector_type2_vector(int32_t,float);
65convert_type1_vector_type2_vector(int32_t,double);
66convert_type1_vector_type2_vector(uint32_t,float);
67convert_type1_vector_type2_vector(uint32_t,double);
68convert_type1_vector_type2_vector(int16_t,int8_t);
69convert_type1_vector_type2_vector(uint16_t,uint8_t);
70convert_type1_vector_type2_vector(int32_t,int8_t);
71convert_type1_vector_type2_vector(int32_t,int16_t);
72convert_type1_vector_type2_vector(uint32_t,uint8_t);
73convert_type1_vector_type2_vector(uint32_t,uint16_t);
74convert_type1_vector_type2_vector(float,int8_t);
75convert_type1_vector_type2_vector(float,uint8_t);
76convert_type1_vector_type2_vector(float,int16_t);
77convert_type1_vector_type2_vector(float,uint16_t);
78convert_type1_vector_type2_vector(float,int32_t);
79convert_type1_vector_type2_vector(float,uint32_t);
80convert_type1_vector_type2_vector(double,int8_t);
81convert_type1_vector_type2_vector(double,uint8_t);
82convert_type1_vector_type2_vector(double,int16_t);
83convert_type1_vector_type2_vector(double,uint16_t);
84convert_type1_vector_type2_vector(double,int32_t);
85convert_type1_vector_type2_vector(double,uint32_t);
86convert_type1_vector_type2_vector(double,float);
87convert_type1_vector_type2_vector(uint8_t,rgb8);
88convert_type1_vector_type2_vector(uint8_t,rgbx8);
89convert_type1_vector_type2_vector(rgb8,uint8_t);
90convert_type1_vector_type2_vector(rgbx8,uint8_t);
91
92
93/*
94 * ---------------
95 * --- LowPart ---
96 * ---------------
97 */
98
99void lowpart_ui16vector_ui8vector(uint16_t * X, int32_t nl, int32_t nh, uint8_t * Y);
100void lowpart_ui32vector_ui8vector(uint32_t * X, int32_t nl, int32_t nh, uint8_t * Y);
101
102#endif /* __NRMEM1_H__ */
103
Note: See TracBrowser for help on using the repository browser.