Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/pure-cfg/src/include/Diderot/diderot.h
ViewVC logotype

Annotation of /branches/pure-cfg/src/include/Diderot/diderot.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 440 - (view) (download) (as text)
Original Path: trunk/src/lib/diderot.h

1 : jhr 438 /*! \file diderot.h
2 :     *
3 :     * \author John Reppy
4 :     */
5 :    
6 :     /*
7 :     * COPYRIGHT (c) 2010 The Diderot Project (http://diderot-language.cs.uchicago.edu)
8 :     * All rights reserved.
9 :     */
10 :    
11 :     #ifndef _DIDEROT_H_
12 :     #define _DIDEROT_H_
13 :    
14 : jhr 440 #define STATIC_INLINE static inline
15 :    
16 : jhr 438 #include <stdint.h>
17 :     #include <stdbool.h>
18 :    
19 :     /* library-call status */
20 :     typedef enum { DIDEROT_OK = 0, DIDEROT_FAIL = -1 } Status_t;
21 :    
22 :     /* SSE vector types */
23 :     typedef float float4 __attribute__ ((__vector_size__ (16)));
24 :     typedef double double2 __attribute__ ((__vector_size__ (16)));
25 :    
26 :     /* union types for converting extracting vector data */
27 :     typedef union {
28 :     float f[4];
29 :     float4 v;
30 :     } f4union;
31 :    
32 :     typedef union {
33 :     double d[2];
34 :     double2 v;
35 :     } d2union;
36 :    
37 :     /* typedefs for Diderot types */
38 :     typedef int32_t Diderot_int_t;
39 :     typedef float Diderot_real_t;
40 :     typedef f4union Diderot_vec3_t; // padded to fit in SSE register
41 :     typedef f4union Diderot_vec4_t;
42 :     typedef const char *Diderot_string_t;
43 :    
44 :     typedef struct { // wrapper for 1D image data
45 :     uint32_t dim; // dimension (== 1)
46 :     uint32_t size[1];
47 :     void *data;
48 :     } Diderot_image1D_t;
49 :    
50 :     typedef struct { // wrapper for 2D image data
51 :     uint32_t dim; // dimension (== 2)
52 :     uint32_t size[2]; // sizes (fast to slow)
53 :     void *data;
54 :     } Diderot_image2D_t;
55 :    
56 :     typedef struct { // wrapper for 3D image data
57 :     uint32_t dim; // dimension (== 3)
58 :     uint32_t size[3]; // sizes (fast to slow)
59 :     void *data;
60 :     } Diderot_image3D_t;
61 :    
62 :     /* Diderot library functions */
63 :    
64 :     /* load image data from Nrrd files */
65 :     extern Status_t Diderot_LoadImage1D (Diderot_string_t name, Diderot_image1D_t *img);
66 :     extern Status_t Diderot_LoadImage2D (Diderot_string_t name, Diderot_image2D_t *img);
67 :     extern Status_t Diderot_LoadImage3D (Diderot_string_t name, Diderot_image3D_t *img);
68 :    
69 : jhr 439 /* functions to get input-parameter values */
70 : jhr 438 extern Status_t Diderot_InputString (const char *, const char **, bool);
71 :     extern Status_t Diderot_InputReal (const char *, Diderot_real_t *, bool);
72 :     extern Status_t Diderot_InputVec3 (const char *, Diderot_vec3_t *v);
73 :    
74 : jhr 440 /* inline vector arithmetic functions */
75 :     STATIC_INLINE void Diderot_ScaleV3 (Diderot_vec3_t dstV, Diderot_real_t s, Diderot_vec3_t v)
76 :     {
77 :    
78 :     }
79 :    
80 :     STATIC_INLINE void Diderot_CopyV3 (&pos, &(glob->pos))
81 :     {
82 :     }
83 :    
84 :     STATIC_INLINE void Diderot_AddV3 (&pos, &pos, &_t)
85 :     {
86 :     }
87 :    
88 : jhr 438 #endif /* !_DIDEROT_H_ */

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0