00001 #ifndef QTHREAD_WAVEFRONT_H
00002 #define QTHREAD_WAVEFRONT_H
00003
00004 #include <qthread/qarray.h>
00005
00006 Q_STARTCXX
00007 typedef void (*wave_comp_f) (const void *restrict left,
00008 const void *restrict leftdown,
00009 const void *restrict down, void *restrict out);
00010 typedef void (*wave_f) (qarray * restrict left, qarray * restrict below,
00011 void **R);
00012
00013 typedef struct qt_wavefront_lattice_s qt_wavefront_lattice;
00014
00015 qt_wavefront_lattice *qt_wavefront(qarray * restrict const left,
00016 qarray * restrict const below,
00017 wave_comp_f func);
00018 void qt_wavefront_print_lattice(const qt_wavefront_lattice * const L);
00019 void qt_wavefront_destroy_lattice(qt_wavefront_lattice * const L);
00020
00021 void qt_basic_wavefront(int *restrict const *const R, size_t cols,
00022 size_t rows, wave_comp_f func);
00023
00024 Q_ENDCXX
00025 #endif