GNU C-Graph

GNU C-Graph is a novel tool for visualizing the Convolution Theorem, a core theorem in functional analysis with applications in signal and image processing, computer vision, statistics, and other areas of applied mathematics. "C-Graph" is short for "Convolution Graph". The package is an effective aid for lecture demonstrations and lab work in colleges and universities.



GNU C-Graph

GNU C-Graph Homepage Background.png

Homepage Background

Original author(s) Adrienne Gaye Thompson

Developer(s) GNU Project

Stable release 2.0 / August 26, 2011; 18 months ago (2011-08-26)

Written in Fortran

Operating system GNU

Available in English

Type Scientific Visualization

License GNU GPLv3+



The underlying work in C-Graph was conceived and developed by Adrienne Gaye Thompson in the Honours year, October 1982 to April 1983, of her BSc. degree in Electrical Engineering at the University of Aberdeen, Scotland (the University). She coded the program in her dissertation "Interactive Computer Package Demonstrating: Sampling Convolution and the FFT" (the Dissertation) in Fortran 77, using the GINO library of subroutines for plotting.[1] In November 2008, Thompson released NAILS (NAILS for Artificial Intelligence Lisp Solving), her suite of solutions to the exercises in the textbook LISP 3rd edition,[3] with the intention of offering the package to GNU. On being advised that NAILS could not be adopted by the GNU Project (as the book on which it is based is non-free) she contacted Free Software Foundation President Richard Stallman, who suggested that she consider the program from her Dissertation instead.

Thompson is sole author of both the Dissertation and the derivative work C-Graph, released as GNU C-Graph 2.0.


The Convolution Theorem

Main articles: Convolution and Convolution theorem

Convolution is regarded as the most significant concept underlying core techniques in digital signal processing.[4][5][6]

The Fourier transform of the convolution of two signals is equal to the product of their Fourier transforms. Conversely, the inverse Fourier transform of the product of their transforms equals their convolution.[7][8][9] We say that:

f*h= \mathcal{F}^{-1}\big\{\mathcal{F}\{f\}\cdot\mathcal{F}\{h\}\big\}

where f and h are two functions with convolution f*h, and  \mathcal{F} denotes the Fourier transform operator.

The Fast Fourier Transform (FFT) computes the Discrete Fourier Transform (DFT), which produces circular convolution when it is generally linear convolution in which we are interested. GNU C-Graph demonstrates the relationship between linear and circular convolution, showing that N-point circular convolution is equivalent to linear convolution when

N \ge L + M - 1

Where L and M are the lengths of f and h, zero-padded to length N.[10][11][12] Linear filters can then be efficiently implemented according to the Convolution Theorem by multiplying the DFTs then taking the inverse.[13]


With the terminal window as the user interface, colourful displays demonstrating convolution can be mounted with just a few keystrokes, an interactive user-friendly dialogue obviating the need for learning code.

The C-Graph wave set consists of pulses, their periodic counterparts, as well as aperiodic functions. Sine, cosine, triangular, rectangular, sawtooth, exponential, ramp, and step signals comprise the wave set. Each waveform is defined as a scalable array of numbers. The size N of each array lies in the range [64, 1024] corresponding to the number of data points handed to the FFT. Pulses are of variable width as the periodic functions from which they are derived are of variable frequency. Error handling for user input is efficient. All graphs displayed may be retrieved for further viewing, or printing.


C-Graph prompts the user to select two waveforms then compares their linear convolution with their circular convolution. The linear convolution is performed directly in the time domain while the circular convolution is obtained in the usual manner - multiplication of their frequency spectra followed by application of the inverse Fast Fourier Transform (FFT). C-Graph displays the waveforms chosen and their spectra generated by the FFT followed by their linear and circular convolutions.

The following are displays from a demonstration visualizing, for example, the response of a simple low-pass RC filter when excited by a triangular pulse signal. The circuit output is the convolution of the exponential impulse response with the triangular input. Here, the user has selected the number of samples N to be 128, a scaling coefficient of 40 for the exponential and, for the triangular pulse, a frequency of 0.8 Hz for the corresponding periodic triangular wave:

GNU C-Graph signals.png

Exponential and Triangular Pulse Waveforms

GNU C-Graph transforms.png

DFTs of the Waveforms

GNU C-Graph convolutions.png

Linear and Circular Convolutions


C-Graph 2.0 uses Alan Miller's fft_simple.f90,[14] Gnuplot for graphing, and ImageMagick to implement its splash screen. The package is written in modern Fortran.


1983 Dissertation

In October 1982, Thompson's designated supervisors specified the development of a signal theory teaching aid for demonstrating all nine properties of the Fourier Transform as her Dissertation assignment. Her registration student record noted the subject of her Dissertation as “Practical Applications of Fourier Transforms”.[15] The project was to be coded in Fortran, be interactive, menu-driven and her own independent work.

Overwhelmed by the extent of the assignment, Thompson chose the convolution property of the Fourier Transform with which to begin - the mathematics of which she was already fascinated. Providing her supervisors with weekly printouts, she created subroutines to perform the linear convolution of two pulses then coded the menu-driven package offering sine, cosine, ramp and step functions. Plagued by her supervisors' responses (warning that she would not produce an Honours dissertation),[16] Thompson continued with the design of subroutines to generate periodic triangular and rectangular waveforms as these were typical functions that she believed ought to be part of any Signal Theory package.

The scope of the assignment being well beyond the capabilities of any single Honours student, time did not allow further development of the package and Thompson submitted the Dissertation in April 1983. The University's Computer Centre produced statistics showing that Thompson was the fourth largest user in Engineering for the academic year 1982 - 1983.[16] It is evident from the Dissertation that Thompson worked under considerable stress, without supervision or guidance; and the code, while highly creative, betrayed her Fortran newbieness.[1]

The triangular and rectangular waveforms proved to be of special interest to the Department of Engineering who, although failed to develop her code further, exploited her program as a diagnostic tool for machine condition monitoring on Shell's Brent Bravo platform in Scotland's North Sea oil Industry.[17][18][19]


Encouraged by Stallman, Thompson began the project to relearn Fortran on 5 February 2009. Before beginning she released a package of 5 replicas of core subroutines in the Dissertation that she had coded in C over 3 days in 1996, as C-Graph 1.0.[20] Thompson coded the package - in defence of her authorship - on discovering that she had been defrauded of the rights to her Dissertation.[21] For C-Graph 2.0 she originally intended to reconstruct her Dissertation code again using Fortran 77 as that seemed more efficient than learning Fortran 90/95. Fortran (she mistakenly believed) appeared to be outmoded, doomed to be replaced by Fortress,[22] but members of the Usenet group comp.lang.fortran persuaded her otherwise.[23] Using Andy Vaught's G95 compiler, Thompson developed a preview release of C-Graph 2.0 to the stage at which she had terminated her Dissertation, releasing the preview code on 24 April 2009.[24][25]

She resumed development in December 2010. The intervening months saw the failure of her computer motherboard, much difficulty finding information particular to the packaging of interactive GNU programs in accordance with GNU standards, and the death of her former fiance. Having released NAILS before embarking on the C-Graph project, her coding style is influenced by Lisp. While C-Graph adverts to the "structure, sequence and organization" of the program in the Dissertation, no part of C-Graph's code is copied from the underlying work.[1] C-Graph's features both transform and transcend what Thompson achieved in her Dissertation.

Thompson concluded development of C-Graph 2.0 in March 2011. Plans for the next release include upgrading the implementation of the FFT algorithm, and a custom command line interface.


Download statistics suggest a worldwide C-Graph user base in the tens of thousands since the release of the package on 26 August 2011. GNU C-Graph is part of Fedora 18.


C-Graph is licensed under the GNU General Public License (the GPL) version 3 or any later version. In light of the history of denial of Thompson's authorship, the license takes advantage of the provisions of section 7 of the GPL, imposing additional terms in respect of author attribution and misrepresentation of origin.

Theft Apartheid & Obstruction of Justice

In sworn complaints filed with law enforcement authorities,[26][27] Thompson alleges that in 1983, professors of the Department of Engineering at the University in combination with their external examiners and Thompson's two supervisors appropriated property representing rights to her Dissertation, with intent to permanently deprive her of it.[28]The property was fraudulently converted to rights purportedly vested in Colin Sinclair MacLean (a white Scot) in respect of his PhD thesis “Development of a Microprocessor-Based Signal Analyser for Machine Condition Monitoring”.[29][28] Thompson's entire Fortran program (the Fortran Program), adapted as machine code, constituted the substance of MacLean's PhD thesis - for which he was awarded the degree of Doctor of Philosophy in Engineering. The conferral of the latter in July 1985 effectively asserted the covert defence that Thompson (who is black, a Jamaican of African descent) could not have authored the Dissertation within a single year along with eight major courses and other requirements of the BSc. Honours degree in Engineering.

Thompson was awarded a mark of zero for the mandatory dissertation requirement (2/7 the total Honours mark), and her Dissertation falsely accounted for as "achieved" by the University's publication of forged certifications purportedly awarding her the degree of Bachelor of Science in Engineering Honours Second Class (Division 2). The certifications served to conceal the theft, and the consequent degree award as ultra vires ab initio, null and void (i.e. bogus).[30][33]

Since her discovery of the theft in October 1996, Thompson has repeatedly issued demands for restitution.[21] Her notifications of 13 January 2012 pursuant to sections 7 and 10 of the Data Protection Act 1998 (UK) cited the University's knowledge that she created and completed the Fortran Program in the period October 1982 to April 1983, within the single Honours year of her BSc. program - the third year of MacLean's doctoral program.[34] Thompson coded the Fortran Program under her user ID uen4059 on the University's Honeywell 66/80 mainframe centrally administered by the University Computing Centre, which stored the evidence in the backup tapes.[35] The latter notifications asserted that the University secretly rescinded MacLean's doctoral award in consequence of her demand dated 7 October 2002,[36][34] which constituted part of Thompson's doctoral application to the Massachusetts Institute of Technology, and in which (for the first time) she succeeded in identifying MacLean and the title of his PhD thesis.[37]

Thompson submitted that the University's failure to restore her rightful property, in light of the rescission, corroborated findings by the Commission for Racial Equality (the CRE) of a history of institutionalized racial discrimination.[38] She asserted that the latter finding, which comports with systematic fraud against against non-white engineering students (primarily of mongolic/asian race) accords with intent to maintain a regime of apartheid, persevering with the knowledge of government.[39]

The CRE's procedures were assistant to Thompson's claim under the Race Relations Act 1976, following her appeal to the University Senate against the degree class (II-2) awarded, in which she cited an established practice of racial discrimination against non-white students in engineering.[40] The University declined to grant an independent reassessment of the examination papers in the face of a pattern over the years evidencing a bimodal shift (congruent with race) in the Honours year from the expected values of degree class (projected from examination achievement during years 1 to 3), constituting a prima facie case of institutionalized racial discrimination.[42]Despite Chairman Sir Peter Newsam's suppression of the exercise of the CRE's powers of formal investigation,[43] however, Principal Education Officer, Gerry German, acting pursuant to consultation by the CRE Principal Complaints Officer, Kuttan Menon, established a presumption of institutionalized racial discrimination in the award of degree classes on a preponderance of evidence obtained from the University.[38][40] It is instructive that the CRE's communications in the matter accord with the University's silence on the issue of Thompson's Dissertation - effectively preempting challenge to the decision to discredit her work.

As may be inferred from the University's non-disclosure in breach of its obligations under the DPA,[44] the conclusive evidence adduced is not amenable to challenge. The continuing cover-up relies on obstruction of justice by Scotland Yard and other law enforcement agencies with jurisdiction - notably the International Criminal Court (the ICC) who have, willfully, excluded Thompson's complaints from the register, suppressing investigation.[45][46][47][48][49][50]

The ICC has been widely criticized as being a neo-colonialist backdoor for the selective prosecutions of Africans and an international mirror of the racial bias dominant in the national jurisdictions of western imperialist powers.[51][52]

Dedication and Logo

GNU C-Graph is dedicated to all victims of apartheid and Thompson's former fiance, Eliezer Regnier, a popular Haitian-Bahamian attorney-at-law and human rights advocate who devoted his professional life to championing the cause of Haitian people in the Bahamas. In C-Graph, function Eliezer and subroutine Regnier (which define scaling and error handling protocols) honour him. Regnier died, suddenly, on 27 February 2010 while she was having difficulty with the repairs to her computer. Compounded by the difficulty navigating the GNU Autotools, these events conspired to bring the production of GNU C-Graph and the inevitable recognition of her authorship of the Dissertation to a halt. Thompson has reported Regnier's death as a murder.

The C-Graph logo is a work in progress inspired by computer vision, the movie Blade Runner, and the copyright symbol.

See also


  1. ^ a b c d Thompson 1983. Code from BSc. Honours Dissertation.

  2. ^ Winston, P. H., & Horn, B.K.P. 1989. LISP 3rd ed. Reading, MA: Addison-Wesley. ISBN 0-201-08319-1.

  3. ^ Thompson 2008. NAILS, a software package of solutions to the exercises in LISP 3rd ed.[2]

  4. ^ McGillem, & Cooper 1991, chap. 2 Convolution.

  5. ^ Freeman 2011, lecture 8: Convolution.

  6. ^ Smith S. W. 1997, Ch6:Convolution. Retrieved 18 March 2013.

  7. ^ McGillem, & Cooper 1991, chap. 3-10 System Function.

  8. ^ Smith, J. O. 2007 The Convolution Theorem.

  9. ^ Smith S. W. 1997, Convolution via the Frequency Domain in Ch9:Applications of the DFT; Ch18:FFT Convolution. Retrieved 18 March 2013.

  10. ^ Jones, D. 2006. Fast Convolution.

  11. ^ Oppenheim 2005, lecture 16: Linear Filtering with the DFT.

  12. ^ McGillem, & Cooper 1991, chap. 4-6 Applications of the FFT.

  13. ^ Smith, J. O. 2007. Convolution as a Filtering Operation; Filters and Convolution.

  14. ^ Alan Miller, fft_simple.f90. Derived from fft.f by Arthur Wouk.

  15. ^ Commission for Racial Equality, response from the University of Aberdeen 11 November 1983, Annexure G.

  16. ^ a b Thompson 2004, Affidavit, para. 14.

  17. ^ MacLean 1984. The acknowledgements page states that MacLean's Doctoral project was sponsored by Shell UK. Since the evidence of the University's backup tapes shows that Thompson began creation of the underlying code in October 1982, page 103 of MacLean's thesis is a false reference to work purportedly carried out on Shell's Brent Bravo platform on 5 July 1982.

  18. ^ MacLean 1984. Triangular wave and spectra, figures 6-12(a), 6-12(b), 6-16(a) and 6-16(b).

  19. ^ Thompson's use of triangular and rectangular waveforms in the background image of C-Graph's homepage (also displayed in the infobox at the top of this page) is a symbolic reference to the exploitation.

  20. ^ Thompson 5 February 2009. C-Graph 1.0 Core subroutines from 1983 Dissertation.[1]

  21. ^ a b Thompson 24 November 1997, p.21 and Appendix. Corroborating Computer Programs, Exhibit F1 to Criminal Complaint.

  22. ^ a b Thompson (viper-2) 9 April 2009. Posts to comp.lang.fortran thread Petition against FORTRAN referring to Thompson's earlier impression given by "Fortress is intended to be a successor to Fortran" Fortress, Language features in Wikipedia (retrieved 9 April 2009), subsequently edited with the replacement text "The name 'Fortress' is intended to connote a secure Fortran".

  23. ^ Thompson (viper-2) 11 - 18 February 2009. Posts to comp.lang.fortran thread Fortran Lesson: Are these Equivalent? Members of the group persuaded Thompson to use a modern Fortran compiler.

  24. ^ Thompson 24 April 2009. C-Graph 2.0 preview release.

  25. ^ Thompson 11 April 2009. Posts to comp.lang.fortran offered a "sneak peek" at the C-Graph 2.0 preview release.[22]

  26. ^ Thompson 2004, Criminal Complaint.

  27. ^ Thompson 2004 to present, Pre-Indictment Brief.

  28. ^ a b Thompson 2004. Theft, Obtaining by Deception, False Accounting, in Criminal Complaint, paras. 1 - 12.

  29. ^ MacLean 1984.

  30. ^ Thompson 2004, Forgery and Suppression of Documents, in Criminal Complaint paras. 8 - 10.

  31. ^ University of Aberdeen, "Transcripts/Diploma Supplement" in Quality Handbook, section 7.16.2:"Transcripts do not include any courses 'Not Achieved', whether through failure or lack of attendance". Retrieved 21 March 2013.

  32. ^ University of Aberdeen, "Cheating in Prescribed Degree Assessments" in Quality Handbook, section 5.2:"[T]he student shall normally be awarded zero marks for the element of assessment ... of which they are judged to have cheated." Retrieved 21 March 2013.

  33. ^ University of Aberdeen 12 January 1988, 15 May 1992, 24 April 2002, and 10 February 2003. Student transcripts issued for Adrienne Gaye Thompson. Her Dissertation, having been awarded a mark of zero, was excluded from the 1988 and 1992 transcripts and (in response to her discovery of the theft and demands for restitution) the title of the Dissertation fraudulently inserted in the 2002 transcript supported by a false mark of 60% declared by the 2003 statement - while the University continues to retain the mark of zero and the corresponding status as "Not Achieved". Criminal Complaint, Exhibit E [31][32]

  34. ^ a b Thompson 13 January 2012. Subject Access Request and Data Subject Notice, paras. 1(d),1(e),1(i).

  35. ^ Thompson 2004. Theft, Obtaining by Deception, False Accounting, in Criminal Complaint, para. 4.

  36. ^ Thompson 7 October 2002. Exhibit H1 to Criminal Complaint.

  37. ^ Thompson 2004, Forgery and Suppression of Documents, in Criminal Complaint, para. 5(a)(x)

  38. ^ a b German G. 10 May 1992. Letter to MIT provost Wrighton, p.1, p.2.

  39. ^ Thompson 13 January 2012. Subject Access Request and Data Subject Notice, paras. 1(a),1(b),1(i).

  40. ^ a b Thompson 1983. See, e.g., the University's response to the CRE, para. 4(d).

  41. ^ Thompson 2004 to present. The Picture of Apartheid, Pre-Indictment Brief, section C.1; Criminal Complaint, paras. 5(a)(i), 17(e), affidavit para. 31. Thompson reported advice from University Senate Clerk Roderick Begg (subsequently University Secretary) that in 1983, all non-white students' Honours examination marks were confined to a narrow II-2 to III band.

  42. ^ Thompson 2004 to present. Jurisdiction and Evidence. In Pre-Indictment Brief, section II.A.[41]

  43. ^ Newsam Peter 22 May 1984. Letter to Robert Hughes MP concerning the CRE's refusal to conduct a formal investigation.

  44. ^ University of Aberdeen 01 February 2012. Response to Notifications under the Data Protection Act 1998 (UK), Thompson's reply.

  45. ^ Thompson (14 July 2004). Pre-Indictment Advice and File of Evidence. Addressed to UK Director of Prosecutions Ken McDonald and ICC Prosecutor Luis Moreno. Ocampo.

  46. ^ Office of the Prosecutor, International CriminalCourt (2 March 2005). Dismissal of complaint Pre-Indictment Advice and File of Evidence: ... as the allegations appear to fall outside the jurisdiction of the Court, the Prosecutor has confirmed that there is not a basis at this time to proceed ... you may consider raising it with appropriate national or international authorities.

  47. ^ Thompson 2004 to present. Obstruction of Justice by Law Enforcement Agencies. In Pre-Indictment Brief, section D.

  48. ^ Thompson 2004 to present. Record of Complaints Responses and Associated Documents. In Pre-Indictment Brief, Appendix A.

  49. ^ Office of the Prosecutor, International Criminal Court (9 October 2006). Email merely enclosing copy of 2 March 2005 dismissal

  50. ^ Gopinathan, Vas Detective (4-5 February 2004). Response from Scotland Yard misrepresenting the alleged criminal conduct as plagiarism: "Thank you for your e-mail and your comments have been noted. I am in possession of your file and and have been asked to review the allegation. Please can you tell me how you came to know that Colin Sinclair McLean plagarised [y]our thesis for his PHD ?" Retrieved 3 April 2013.

  51. ^ Ford, Glen (October 2012). The ICC: The Empire's Court: "The International Criminal Court has turned into its opposite: an injudicious, selective enforcer of imperial policy, rather than a global standard of criminal law." Pan African Forum in Austria. Retrieved 2 April 2013.

  52. ^ Cheng, Christine (27 April 2012). Charles Taylor Trial Highlights ICC Concerns: "For the ICC to remain viable, it also cannot be perceived as the backdoor by which Western powers target their political enemies." Retrieved 2 April 2013.


External Links


GNU Project


GNU's not UNIX



Public speakers

Other topics