Data Structures | |
struct | KSPROP2_METADATA |
struct | KSPROP_DESIGN |
struct | KSPROP_STATE |
struct | KSPROP_SETTINGS |
Macros | |
#define | KSPROP_MAXBLADES 256 |
#define | GOLDEN_SECTION 1.618 |
#define | KSPROP2_INIT_METADATA {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
#define | KSPROP_INIT_DESIGN {KSPROP_LINEAR_ANGLE, KSPROP_LOOPMODE_INNER_BLADE, KSPROP_COLORED_NOISE, 1.0f, 0, 1} |
#define | KSPROP_INIT_STATE {KS_NOTSET, KS_INITVALUE(KSPROP_MAXBLADES,0)} |
#define | KSPROP_DEFAULT_SETTINGS {KSPROP_INIT_DESIGN, KSPROP_INIT_STATE} |
Enumerations | |
enum | KSPROP_MODE { KSPROP_GOLDEN_ANGLE = 0, KSPROP_LINEAR_ANGLE = 1 } |
enum | KSPROP_LOOPMODE { KSPROP_LOOPMODE_INNER_PASS = 0, KSPROP_LOOPMODE_INNER_BLADE = 1 } |
enum | KSPROP_NOISEMODE { KSPROP_COLORED_NOISE = 0, KSPROP_WHITE_NOISE_RADIAL = 1, KSPROP_WHITE_NOISE_SIMPLE_RADIAL = 2, KSPROP_WHITE_NOISE_TAILORED = 3 } |
Functions | |
float | ksprop_bladeangle_golden (int bladeidx) |
STATUS | ksprop_eval_bladeangles (KSPROP_SETTINGS *prop) |
int | ksprop_eval_numblades (float bladefactor, int xres, int yres, const int crosscal, const unsigned int averages) |
STATUS | ksprop_eval_validatedesign (KSPROP_SETTINGS *prop, KS_KSPACE_DESIGN *kdesign) |
STATUS | ksprop_eval (KSPROP_SETTINGS *prop, KS_KSPACE_DESIGN *kdesign) |
STATUS | eval_white_prop_readwave (KS_READWAVE *readwave, const int nsamples, const KS_WAVEFORM half_acq_waveform, const float sampling_area, const KS_KSPACE_DESIGN *kdesign, const float xcrusher_area, const char *desc) |
float | get_blade_intersection (const float theta, const float kv, const float kv_max) |
void | get_blade_intersections (float *blade_intersections, const float kv, const float kv_max, const float *blade_angles, const int nblades) |
int | num_intersections_beyond_k (const float *blade_intersections, const int nblades, const float k) |
float | radial_curve (const float ku, const float ku_max, const float kv_max) |
void | get_half_wave (KS_WAVEFORM acq_waveform, const int nsamples, const float scale, const float *blade_intersections, const int nblades, const float ku_max, const float kv_max, const float slew_limit, const float amp_limit) |
float | get_area (KS_WAVEFORM waveform, const int nsamples, const float dwell) |
void | optimize (KS_WAVEFORM acq_waveform, const int nsamples, const float *blade_intersections, const int nblades, const float ku_max, const float kv_max, const float slew_limit, const float amp_limit) |
void | ksprop_init_settings (KSPROP_SETTINGS *const prop) |
s64 | ksprop_scan_singlepass (const KSPROP_SETTINGS *prop, KSSCAN_LOOP_CONTROL *loopctrl, KS_DYNAMIC_STATE *dynamic, KS_CORESLICETIME coreslice(const SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic)) |
s64 | ksprop_scan_singlepass_inv (const KSPROP_SETTINGS *prop, KSINV_LOOP_CONTROL *inv_loopctrl, KS_DYNAMIC_STATE *dynamic, KS_CORESLICETIME coreslice(const SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic), KS_CORESLICETIME irslice(const SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic)) |
s64 | ksprop_scan_scanloop (const KSPROP_SETTINGS *prop, KSSCAN_LOOP_CONTROL *loopctrl, KS_DYNAMIC_STATE *dynamic, KS_CORESLICETIME coreslice(const SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic)) |
s64 | ksprop_scan_scanloop_inv (const KSPROP_SETTINGS *prop, KSINV_LOOP_CONTROL *inv_loopctrl, KS_DYNAMIC_STATE *dynamic, KS_CORESLICETIME coreslice(const SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic), KS_CORESLICETIME irslice(const SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic)) |
void | ksprop_attach_metadata (WF_PULSE_ADDR echo, const KS_DYNAMIC_STATE *dynamic, const char *custom) |
#define KSPROP_MAXBLADES 256 |
#define GOLDEN_SECTION 1.618 |
#define KSPROP2_INIT_METADATA {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
#define KSPROP_INIT_DESIGN {KSPROP_LINEAR_ANGLE, KSPROP_LOOPMODE_INNER_BLADE, KSPROP_COLORED_NOISE, 1.0f, 0, 1} |
#define KSPROP_INIT_STATE {KS_NOTSET, KS_INITVALUE(KSPROP_MAXBLADES,0)} |
#define KSPROP_DEFAULT_SETTINGS {KSPROP_INIT_DESIGN, KSPROP_INIT_STATE} |
enum KSPROP_MODE |
enum KSPROP_LOOPMODE |
enum KSPROP_NOISEMODE |
float ksprop_bladeangle_golden | ( | int | bladeidx | ) |
STATUS ksprop_eval_bladeangles | ( | KSPROP_SETTINGS * | prop | ) |
int ksprop_eval_numblades | ( | float | bladefactor, |
int | xres, | ||
int | yres, | ||
const int | crosscal, | ||
const unsigned int | averages | ||
) |
STATUS ksprop_eval_validatedesign | ( | KSPROP_SETTINGS * | prop, |
KS_KSPACE_DESIGN * | kdesign | ||
) |
STATUS ksprop_eval | ( | KSPROP_SETTINGS * | prop, |
KS_KSPACE_DESIGN * | kdesign | ||
) |
ADDDESCHERE
prop | ADDTEXTHERE |
kdesign | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS eval_white_prop_readwave | ( | KS_READWAVE * | readwave, |
const int | nsamples, | ||
const KS_WAVEFORM | half_acq_waveform, | ||
const float | sampling_area, | ||
const KS_KSPACE_DESIGN * | kdesign, | ||
const float | xcrusher_area, | ||
const char * | desc | ||
) |
float get_blade_intersection | ( | const float | theta, |
const float | kv, | ||
const float | kv_max | ||
) |
void get_blade_intersections | ( | float * | blade_intersections, |
const float | kv, | ||
const float | kv_max, | ||
const float * | blade_angles, | ||
const int | nblades | ||
) |
int num_intersections_beyond_k | ( | const float * | blade_intersections, |
const int | nblades, | ||
const float | k | ||
) |
float radial_curve | ( | const float | ku, |
const float | ku_max, | ||
const float | kv_max | ||
) |
void get_half_wave | ( | KS_WAVEFORM | acq_waveform, |
const int | nsamples, | ||
const float | scale, | ||
const float * | blade_intersections, | ||
const int | nblades, | ||
const float | ku_max, | ||
const float | kv_max, | ||
const float | slew_limit, | ||
const float | amp_limit | ||
) |
float get_area | ( | KS_WAVEFORM | waveform, |
const int | nsamples, | ||
const float | dwell | ||
) |
void optimize | ( | KS_WAVEFORM | acq_waveform, |
const int | nsamples, | ||
const float * | blade_intersections, | ||
const int | nblades, | ||
const float | ku_max, | ||
const float | kv_max, | ||
const float | slew_limit, | ||
const float | amp_limit | ||
) |
void ksprop_init_settings | ( | KSPROP_SETTINGS *const | prop | ) |
ADDDESCHERE
prop | ADDTEXTHERE |
s64 ksprop_scan_singlepass | ( | const KSPROP_SETTINGS * | prop, |
KSSCAN_LOOP_CONTROL * | loopctrl, | ||
KS_DYNAMIC_STATE * | dynamic, | ||
KS_CORESLICETIME | coresliceconst SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic | ||
) |
ADDDESCHERE
prop | ADDTEXTHERE | |
loopctrl | ADDTEXTHERE | |
dynamic | Pointer to KS_DYNAMIC_STATE struct, which has elements being automatically updated by the scan looping functions | |
[in] | coreslice | KS_CORESLICETIME playing one or more sequence modules for a single playout |
time | Duration in [us] to play out the scope of the function in real time |
s64 ksprop_scan_singlepass_inv | ( | const KSPROP_SETTINGS * | prop, |
KSINV_LOOP_CONTROL * | inv_loopctrl, | ||
KS_DYNAMIC_STATE * | dynamic, | ||
KS_CORESLICETIME | coresliceconst SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic, | ||
KS_CORESLICETIME | irsliceconst SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic | ||
) |
ADDDESCHERE
prop | ADDTEXTHERE | |
inv_loopctrl | ADDTEXTHERE | |
dynamic | Pointer to KS_DYNAMIC_STATE struct, which has elements being automatically updated by the scan looping functions | |
[in] | coreslice | KS_CORESLICETIME playing one or more sequence modules for a single playout |
[in] | irslice | KS_CORESLICETIME playing an inversion (and optionally more) modules for a single inversion slice playout |
time | Duration in [us] to play out the scope of the function in real time |
s64 ksprop_scan_scanloop | ( | const KSPROP_SETTINGS * | prop, |
KSSCAN_LOOP_CONTROL * | loopctrl, | ||
KS_DYNAMIC_STATE * | dynamic, | ||
KS_CORESLICETIME | coresliceconst SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic | ||
) |
ADDDESCHERE
prop | ADDTEXTHERE | |
loopctrl | ADDTEXTHERE | |
dynamic | Pointer to KS_DYNAMIC_STATE struct, which has elements being automatically updated by the scan looping functions | |
[in] | coreslice | KS_CORESLICETIME playing one or more sequence modules for a single playout |
time | Duration in [us] to play out the scope of the function in real time |
s64 ksprop_scan_scanloop_inv | ( | const KSPROP_SETTINGS * | prop, |
KSINV_LOOP_CONTROL * | inv_loopctrl, | ||
KS_DYNAMIC_STATE * | dynamic, | ||
KS_CORESLICETIME | coresliceconst SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic, | ||
KS_CORESLICETIME | irsliceconst SCAN_INFO *slice_pos, KS_DYNAMIC_STATE *dynamic | ||
) |
ADDDESCHERE
prop | ADDTEXTHERE | |
inv_loopctrl | ADDTEXTHERE | |
dynamic | Pointer to KS_DYNAMIC_STATE struct, which has elements being automatically updated by the scan looping functions | |
[in] | coreslice | KS_CORESLICETIME playing one or more sequence modules for a single playout |
[in] | irslice | KS_CORESLICETIME playing an inversion (and optionally more) modules for a single inversion slice playout. Can be NULL |
time | Duration in [us] to play out the scope of the function in real time |
void ksprop_attach_metadata | ( | WF_PULSE_ADDR | echo, |
const KS_DYNAMIC_STATE * | dynamic, | ||
const char * | custom | ||
) |
ADDDESCHERE
[in] | echo | ADDTEXTHERE |
dynamic | Pointer to KS_DYNAMIC_STATE struct, which has elements being automatically updated by the scan looping functions | |
custom | ADDTEXTHERE |