diff options
author | David Schleef <ds@schleef.org> | 2005-09-15 07:05:10 +0000 |
---|---|---|
committer | David Schleef <ds@schleef.org> | 2005-09-15 07:05:10 +0000 |
commit | c569cd2fbf70a7017fe2f44140edbf5f8001e64f (patch) | |
tree | ab7162be35983dcd67201d3e5d9de2ba2b25ccee | |
parent | 2c9c450abd2ec054779f573b795c501e4af7c9fd (diff) | |
download | liboil-c569cd2fbf70a7017fe2f44140edbf5f8001e64f.tar.gz |
* examples/oil-test.c: Add 64-bit types
* liboil/liboilparameter.h: same
* liboil/liboilprototype.c: same
* liboil/liboilrandom.h: same
* liboil/liboiltest.c: same
* liboil/Makefile.am: fix windows build
* liboil/simdpack/sincos_f64.c: minor change
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | examples/oil-test.c | 8 | ||||
-rw-r--r-- | liboil/Makefile.am | 21 | ||||
-rw-r--r-- | liboil/liboilparameter.h | 4 | ||||
-rw-r--r-- | liboil/liboilprototype.c | 12 | ||||
-rw-r--r-- | liboil/liboilrandom.h | 6 | ||||
-rw-r--r-- | liboil/liboiltest.c | 12 | ||||
-rw-r--r-- | liboil/simdpack/sincos_f64.c | 6 |
8 files changed, 66 insertions, 13 deletions
@@ -1,3 +1,13 @@ +2005-09-15 David Schleef <ds@schleef.org> + + * examples/oil-test.c: Add 64-bit types + * liboil/liboilparameter.h: same + * liboil/liboilprototype.c: same + * liboil/liboilrandom.h: same + * liboil/liboiltest.c: same + * liboil/Makefile.am: fix windows build + * liboil/simdpack/sincos_f64.c: minor change + 2005-09-13 David Schleef <ds@schleef.org> * liboil/simdpack/sincos_f64.c: (sincos_f64_sincos): Add impl diff --git a/examples/oil-test.c b/examples/oil-test.c index 7fa6192..0ce60e8 100644 --- a/examples/oil-test.c +++ b/examples/oil-test.c @@ -76,7 +76,7 @@ dump_array (void *data, void *ref_data, OilType type, int pre_n, int stride, for(j=0;j<pre_n;j++){ \ x = fabs(OIL_GET(data, i*stride + j*s2, type) - \ OIL_GET(ref_data, i*stride + j*s2, type)); \ - if (x >= 1.0) { \ + if (x >= 0.00001) { \ printf("*" format "* ", OIL_GET(data, i*stride + j*s2, type)); \ } else { \ printf(format " ", OIL_GET(data, i*stride + j*s2, type)); \ @@ -106,6 +106,12 @@ dump_array (void *data, void *ref_data, OilType type, int pre_n, int stride, DUMP(uint32_t, "%u"); //DUMP(uint32_t, "%08x"); break; + case OIL_TYPE_s64p: + DUMP(int64_t, "%lld"); + break; + case OIL_TYPE_u64p: + DUMP(uint64_t, "%llu"); + break; case OIL_TYPE_f32p: DUMP(float, "%g"); break; diff --git a/liboil/Makefile.am b/liboil/Makefile.am index 530ca28..7e6bfec 100644 --- a/liboil/Makefile.am +++ b/liboil/Makefile.am @@ -15,7 +15,11 @@ pkginclude_HEADERS = liboil.h liboilfunction.h liboildebug.h liboilfuncs.h \ liboilrandom.h liboilgcc.h liboiltest.h liboilprofile.h \ liboilinternal.h liboilclasses.h +if ENABLE_GTK_DOC nodist_noinst_HEADERS = liboilfuncs-doc.h +else +nodist_noinst_HEADERS = +endif CLEANFILES = liboilarray.c liboilfuncs-doc.h @@ -37,8 +41,7 @@ liboilfunctions_la_LIBADD = \ ref/libref.la \ simdpack/libsimdpack.la \ sse/libsse.la \ - utf8/libutf8.la \ - $(LIBM) + utf8/libutf8.la liboilfunctions_la_LDFLAGS = \ -no-undefined @@ -124,17 +127,17 @@ liboilarray.c: liboiltmp1.la Makefile cmp liboilarray.c.tmp liboilarray.c || mv liboilarray.c.tmp liboilarray.c liboilfuncs.h: - ./build_prototypes >liboilfuncs.h + ./build_prototypes$(EXEEXT) >liboilfuncs.h liboilmarshal.c: - ./build_marshal >liboilmarshal.c + ./build_marshal$(EXEEXT) >liboilmarshal.c liboilfuncs-doc.h: - ./build_prototypes_doc >liboilfuncs-doc.h + ./build_prototypes_doc$(EXEEXT) >liboilfuncs-doc.h update: - ./build_prototypes >liboilfuncs.h - ./build_marshal >liboilmarshal.c - ./build_prototypes_doc >liboilfuncs-doc.h - ./build_class_decls >liboilclasses.h + ./build_prototypes$(EXEEXT) >liboilfuncs.h + ./build_marshal$(EXEEXT) >liboilmarshal.c + ./build_prototypes_doc$(EXEEXT) >liboilfuncs-doc.h + ./build_class_decls$(EXEEXT) >liboilclasses.h diff --git a/liboil/liboilparameter.h b/liboil/liboilparameter.h index cb0581a..c92a066 100644 --- a/liboil/liboilparameter.h +++ b/liboil/liboilparameter.h @@ -39,6 +39,8 @@ typedef enum { OIL_TYPE_u16, OIL_TYPE_s32, OIL_TYPE_u32, + OIL_TYPE_s64, + OIL_TYPE_u64, OIL_TYPE_f32, OIL_TYPE_f64, OIL_TYPE_s8p, @@ -47,6 +49,8 @@ typedef enum { OIL_TYPE_u16p, OIL_TYPE_s32p, OIL_TYPE_u32p, + OIL_TYPE_s64p, + OIL_TYPE_u64p, OIL_TYPE_f32p, OIL_TYPE_f64p, } OilType; diff --git a/liboil/liboilprototype.c b/liboil/liboilprototype.c index d137af4..b8d6eef 100644 --- a/liboil/liboilprototype.c +++ b/liboil/liboilprototype.c @@ -308,7 +308,11 @@ int oil_type_sizeof (OilType type) case OIL_TYPE_u32p: case OIL_TYPE_f32p: return 4; + case OIL_TYPE_s64: + case OIL_TYPE_u64: case OIL_TYPE_f64: + case OIL_TYPE_s64p: + case OIL_TYPE_u64p: case OIL_TYPE_f64p: return 8; } @@ -324,6 +328,8 @@ static const char *oil_type_names [] = { "uint16_t", "int32_t", "uint32_t", + "int64_t", + "uint64_t", "float", "double", "int8_t *", @@ -332,6 +338,8 @@ static const char *oil_type_names [] = { "uint16_t *", "int32_t *", "uint32_t *", + "int64_t *", + "uint64_t *", "float *", "double *" }; @@ -342,6 +350,8 @@ static const char *oil_type_names_2 [] = { "uint16_t", "int32_t", "uint32_t", + "int64_t", + "uint64_t", "float", "double" }; @@ -352,6 +362,8 @@ static const char *oil_type_names_3 [] = { "type_u16", "type_s32", "type_u32", + "type_s64", + "type_u64", "type_f32", "type_f64" }; diff --git a/liboil/liboilrandom.h b/liboil/liboilrandom.h index 2a9d928..a681c75 100644 --- a/liboil/liboilrandom.h +++ b/liboil/liboilrandom.h @@ -35,6 +35,8 @@ #define oil_rand_s32() ((rand()&0xffff)<<16 | (rand()&0xffff)) #define oil_rand_s32_l31() (((int32_t)rand())-0x40000000) +#define oil_rand_s64() ((int64_t)(oil_rand_s32())<<32 | oil_rand_s32()) + #define oil_rand_s16() ((int16_t)(rand()&0xffff)) #define oil_rand_s16_l15() (oil_rand_s16()>>1) #define oil_rand_s16_l9() (oil_rand_s16()>>7) @@ -43,9 +45,11 @@ #define oil_rand_s8() ((int8_t)(rand()&0xffff)) -#define oil_rand_u32() ((rand()&0xffff)<<16 | (rand()&0xffff)) +#define oil_rand_u32() ((uint32_t)((rand()&0xffff)<<16 | (rand()&0xffff))) #define oil_rand_u32_l31() ((uint32_t)rand()) +#define oil_rand_u64() ((uint64_t)(oil_rand_u32())<<32 | oil_rand_u32()) + #define oil_rand_u16() ((uint16_t)(rand()&0xffff)) #define oil_rand_u8() ((uint8_t)(rand()&0xffff)) diff --git a/liboil/liboiltest.c b/liboil/liboiltest.c index c92de82..f2bd566 100644 --- a/liboil/liboiltest.c +++ b/liboil/liboiltest.c @@ -472,6 +472,12 @@ fill_array (void *data, OilType type, int pre_n, int stride, int post_n) case OIL_TYPE_u32p: FILL(uint32_t,oil_rand_u32()); break; + case OIL_TYPE_s64p: + FILL(int64_t,oil_rand_s64()); + break; + case OIL_TYPE_u64p: + FILL(uint64_t,oil_rand_u64()); + break; case OIL_TYPE_f32p: FILL(float,oil_rand_f32_0_1()); break; @@ -521,6 +527,12 @@ check_array (void *data, void *ref, OilType type, int pre_n, int stride, int pos case OIL_TYPE_u32p: CHECK(uint32_t); break; + case OIL_TYPE_s64p: + CHECK(int64_t); + break; + case OIL_TYPE_u64p: + CHECK(uint64_t); + break; case OIL_TYPE_f32p: CHECK(float); break; diff --git a/liboil/simdpack/sincos_f64.c b/liboil/simdpack/sincos_f64.c index 1bf54ff..d76839b 100644 --- a/liboil/simdpack/sincos_f64.c +++ b/liboil/simdpack/sincos_f64.c @@ -40,10 +40,12 @@ sincos_f64_ref (double *dest_sin, double *dest_cos, int n, double *offset, double *interval) { int i; + double x; for(i=0;i<n;i++){ - dest_sin[i] = sin(*offset + *interval*i); - dest_cos[i] = cos(*offset + *interval*i); + x = *offset + *interval * i; + dest_sin[i] = sin(x); + dest_cos[i] = cos(x); } } OIL_DEFINE_IMPL_REF (sincos_f64_ref, sincos_f64); |