AA_API void aa_tf_qv_svel( const double q0[AA_RESTRICT 4], const double v0[AA_RESTRICT 3], const double w[AA_RESTRICT 3], const double dv[AA_RESTRICT 3], double dt, double q1[AA_RESTRICT 4], double v1[AA_RESTRICT 3] ) { double dx[6], S0[8], S1[8]; /* TODO: avoid the memcpy()s */ AA_MEM_CPY( dx+AA_TF_DX_W, w, 3 ); AA_MEM_CPY( dx+AA_TF_DX_V, dv, 3 ); aa_tf_qv2duqu( q0, v0, S0 ); aa_tf_duqu_svel( S0, dx, dt, S1 ); aa_tf_duqu2qv(S1, q1, v1); }
void dump(struct pir_state *state) { double ql[4], xl[3]; aa_tf_duqu2qv( state->S_wp[PIR_LEFT], ql, xl ); printf("xl: "); aa_dump_vec( stdout, xl, 3 ); }