KSFoundation  [October2024]
A platform for structured EPIC programming on GE MR systems
ksprop.cc File Reference
#include "KSFoundation_private.h"
#include "ksprop.h"

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))
 

Detailed Description

This file contains the sequence-independent implementations for propeller