I am looking to create a program in Java that can use symbolic, as well as numerical, data in a Fourier Transform in order to combine various sinusoidal wave functions into a single wave packet, i.e. changing a position wave function into a momentum wave function and vice-versa. I have tried using algorithms like the Princeton one found here, but the input isn't quite broad enough as I would like to use functions of the form e^ikx in variables as well as actual sine graph.
Are there any suggestions as to a Java system library that I could download, or a method I could implement in order to do this?