user4557: I want to build a function generator but not the ones which outputs square wave or sawtooth ect. I will input a discrete function lets say f(n) = e^n for n=0 to n=100 and the output array will be outputs as voltage samples creating a e^x like signal on a scope?
Is this possible?

user798: You can generate arbitrary waveforms using either the built-in PWM and a low-pass filter or an external DAC.
You won't get more than 16-bits in PWM ( or AFAIK non-audio DAC with arduino libraries ), so your e^N function will be below your resolution for most of the cycle.
Alternatively, generate a saw-tooth and use an op-amp exponential function 

user13669: Arduino DUE has a built-in DAC (has two in fact) and so you can do arbitrary function generation fairly easily by just going over some arbitrary table (that sampled the function) and output that with analogWrite to the DAC channel[s]; details in this arduino.cc tutorial. They only show sine/triangle/square waves there, but if you look at Waveforms.h at the end of that tutorial you can put arbitrary shapes in there.
By the way this technique of waveform generation of using a lookup table and a DAC is abbreviated DDS for Direct Digital Synthesizer.
Here's a more conceptual tutorial on DDS (not involving arduino):
http://www.ni.com/white-paper/5516/en/
The DACs built-in Arduino DUE have 12-bit resolution by the way, i.e. 4096 discrete output levels. IF you need better than that, an external DAC is required, which you could connect by TWI/SPI etc.
You can get a poor man's DAC on the Arduino UNO or Leonardo by PWMing with analogWrite on the GPIO pins (as suggested in the other answer), but you need understand low pass filter fundamentals to get that done.

4557: <p>I want to build a function generator but not the ones which outputs square wave or sawtooth ect. I will input a discrete function lets say f(n) = e^n for n=0 to n=100 and the output array will be outputs as voltage samples creating a e^x like signal on a scope?</p>

<p>Is this possible?</p>
 798: <p>You can generate arbitrary waveforms using either the built-in PWM and a low-pass filter or an external DAC.</p>

<p>You won't get more than 16-bits in PWM ( or AFAIK non-audio DAC with arduino libraries ), so your e^N function will be below your resolution for most of the cycle.</p>

<p>Alternatively, generate a saw-tooth and use an <a href="https://en.wikipedia.org/wiki/Operational_amplifier_applications#Exponential_output" rel="nofollow">op-amp exponential function</a> </p>
 13669: <p>Arduino DUE has a built-in DAC (has two in fact) and so you can do arbitrary function generation fairly easily by just going over some arbitrary table (that sampled the function) and output that with <a href="https://www.arduino.cc/en/Reference/AnalogWrite" rel="nofollow"><code>analogWrite</code></a> to the DAC channel[s]; details in <a href="https://www.arduino.cc/en/Tutorial/DueSimpleWaveformGenerator" rel="nofollow">this arduino.cc tutorial</a>. They only show sine/triangle/square waves there, but if you look at Waveforms.h at the end of that tutorial you can put arbitrary shapes in there.</p>

<p>By the way this technique of waveform generation of using a lookup table and a DAC is abbreviated DDS for <a href="https://en.wikipedia.org/wiki/Direct_digital_synthesizer" rel="nofollow">Direct Digital Synthesizer</a>.
Here's a more conceptual tutorial on DDS (not involving arduino):
<a href="http://www.ni.com/white-paper/5516/en/" rel="nofollow">http://www.ni.com/white-paper/5516/en/</a></p>

<p>The DACs built-in Arduino DUE have 12-bit resolution by the way, i.e. 4096 discrete output levels. IF you need better than that, an external DAC is required, which you could connect by TWI/SPI etc.</p>

<p>You can get a poor man's DAC on the Arduino UNO or Leonardo by PWMing with <code>analogWrite</code> on the GPIO pins (as suggested in the other answer), but you need <a href="http://provideyourown.com/2011/analogwrite-convert-pwm-to-voltage/" rel="nofollow">understand low pass filter fundamentals</a> to get that done.</p>
