# GNU C-Graph Version 2.0

## Visualize convolution with GNU C-Graph, an interactive tool for demonstrating the convolution theorem.

Get GNU's convolution demo from the GNU servers, via HTTP or FTP. You may also download pre-release builds of C-Graph 2.0 from the cabinet below.

**17 October 2011**

Here is GNU C-Graph 2.0 !!! RMS dubbed C-Graph a GNU package on August 22, but we've had lots of legal issues to sort out (associated with my 1983 BSc. dissertation from which C-Graph is derived) since March. Get GNU C-Graph here for the next couple of days until we have sorted out the upload process to the official sites <http://ftp.gnu.org/gnu/c-graph/>and<ftp://ftp.gnu.org/gnu/c-graph/>.

**14 March 2011**

The manual is almost complete. There are just a few bugs to exterminate now.

**16 February 2011**

I've added the command line interface for displaying C-Graph's basic options, re-coded the Gnuplot command files, provided for the selection of signal frequency (as originally planned), included the option to scale the signals, and coded error handling of user input. There's a little way to go yet!

**22 December 2010**

I spent months searching for information on how to display the GPL without using environment variables. A few months ago, after taking a much needed break, I discovered that not only did Fortran use the C preprocessor,[1] but that the latter may be used to define macros whose values can be inserted into Fortran source code from the command line, and therefore via the CPPFLAGS of GNU *make*. By then I was in the throes of composing the sketch for Regnier's portrait, but have now returned to the task of completing C-Graph 2.0.

**24 April 2009**

C-Graphv2-pv.tgz is a preview of version 2, which will be released in soon. C-Graph version 2 is a Fortran 90/95 program for GNU/Linux.

This preview is a snapshot of the work in progress that marks the stage at which I completed the Fortran 77 program in my Honours dissertation "Interactive Computer Package Demonstrating: Sampling Convolution and the FFT" submitted April/May 1983 to the Department of Engineering, University of Aberdeen (Scotland).

Development of the version 2 preview required more time than my creation of the original at the University of Aberdeen. This time, I had to relearn Fortran - not having coded in the language since 1983 - and Fortran 90/95 is considerably more sophisticated. I began the project to learn Fortran on 5 February 2009. I spent a considerable proportion of the development time searching the web for an appropriate plotting program and a Fast Fourier Transform Fortran 90 implementation compatible with C-Graph's GPL version 3 (or later) license. In 1983 at the University of Aberdeen, I was limited to the Gino graphics library, and the single Fortran 77 FFT implementation indicated by my "supervisors".:-)

My original intention was to reconstruct the program in Fortran 77 as I thought this would save time in my already tight schedule, but my fellow Fortraners on comp.lang.fortran made it clear that using f77 was a silly idea.:-). I then also decided that reconstruction would be far more time intensive than to rewrite the program from scratch, and accordingly opted for the latter.

I may have decided to postpone automation of graphs until version 3, but there is some development still to do for version 2. Error checking procedures (which I omitted in my Thesis) will be added. At the moment, C-Graph will abort if, for example, you enter a character when the program expects an integer. The provision for pulses is new to version 2; I have not yet implemented these, but pulses of equal length may be selected by choosing the period to be twice the total number of samples "N". Try values for N in the range 128 - 1024, for starters. The preview code utilizes Arthur Wouk's f77 FFT, which has been converted to f90 code by Alan Miller. This FFT requires the number of samples to be a power of 2, so any integer value entered by the user will automatically be converted to the nearest power of 2. I have not yet decided, however, on the FFT implementation for the release.

The official release of C-Graph version 2 will have a makefile and configure script. For now, just unpack C-Graphv2-pv.tgz, compile C-Graphv2-preview.f90 with your favourite compiler, and run the executable in the same directory as C-Graph-license.txt. C-Graph uses Gnuplot, so you'll need to run it in X.

I am using G95 to develop C-Graph. Send bug reports to agt@codeartnow.com.

Enjoy!

___________________________________

[1] As another member of comp.lang.fortran pointed out, the Fortran standards do not include the C preprocessor, but some Fortran compilers (such as Gfortran and G95) do feature preprocessor support.

C-Graph Pre-Release Builds