11.07.2014 Views

Flute acoustics: measurement, modelling and design - School of ...

Flute acoustics: measurement, modelling and design - School of ...

Flute acoustics: measurement, modelling and design - School of ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

240 APPENDIX B. PROGRAM LISTINGS<br />

complex subz(complex z1, complex z2) {<br />

complex z;<br />

z.Re = z1.Re - z2.Re;<br />

z.Im = z1.Im - z2.Im;<br />

return z;<br />

}<br />

complex multz(complex z1, complex z2) {<br />

complex z;<br />

z.Re = z1.Re*z2.Re - z1.Im*z2.Im;<br />

z.Im = z1.Re*z2.Im + z1.Im*z2.Re;<br />

return z;<br />

}<br />

complex divz(complex z1, complex z2) {<br />

if(equalz(z2, zero)) return inf;<br />

complex z;<br />

z.Re = (z1.Re*z2.Re + z1.Im*z2.Im)/(z2.Re*z2.Re + z2.Im*z2.Im);<br />

z.Im = (z1.Im*z2.Re - z1.Re*z2.Im)/(z2.Re*z2.Re + z2.Im*z2.Im);<br />

return z;<br />

}<br />

complex expz(complex z1) {<br />

complex z;<br />

z.Re = exp(z1.Re)*cos(z1.Im);<br />

z.Im = exp(z1.Re)*sin(z1.Im);<br />

return z;<br />

}<br />

complex expjz(complex z1) {<br />

return expz(multz(j, z1));<br />

}<br />

complex coshz(complex z1) {<br />

complex minus_one = {-1.0, 0.0};<br />

complex two = {2.0, 0.0};<br />

complex minus_z1 = multz(minus_one, z1);<br />

return divz(addz(expz(z1), expz(minus_z1)), two);<br />

}<br />

complex sinhz(complex z1) {<br />

complex minus_one = {-1.0, 0.0};<br />

complex two = {2.0, 0.0};<br />

complex minus_z1 = multz(minus_one, z1);<br />

return divz(subz(expz(z1), expz(minus_z1)), two);<br />

}<br />

complex cosz(complex z1) {<br />

return coshz(multz(j, z1));<br />

}<br />

complex sinz(complex z1) {<br />

return divz(sinhz(multz(j, z1)), j);<br />

}<br />

complex tanz(complex z1) {

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!