GiNaC

Anti Software Patents Demonstration

Stop the nonsense, Stop the fraud!

For the last few years the European Patent Office (EPO) has, contrary to the letter and spirit of the existing law, granted more than 30000 patents on computer-implemented rules of organisation and calculation (programs for computers). Now Europe's patent movement is pressing to consolidate this practise by writing a new law.

Unlike copyright, patents can block independent creations. Software patents can render software copyright useless. One copyrighted work can be covered by hundreds of patents of which the author doesn't even know but for whose infringement he and his users can be sued. Some of these patents may be impossible to work around, because they are broad or because they are part of communication standards.

Evidence from economic studies shows that software patents have lead to a decrease in R&D spending.

Advances in software are advances in abstraction. While traditional patents were for concrete and physical inventions, software patents cover ideas. Instead of patenting a specific mousetrap, you patent any “means of trapping mammals” or “means of trapping data in an emulated environment”. The fact that the universal logic device called “computer” is used for this does not constitute a limitation.

When software is patentable, anything is patentable!

For more information about software patents in Europe, visit this website: swpat.ffii.org.

GiNaC is a C++ library. It is designed to allow the creation of integrated systems that embed symbolic manipulations together with more established areas of computer science (like computation- intense numeric applications, graphical interfaces, etc.) under one roof. It is distributed under the terms and conditions of the GNU general public license (GPL). GiNaC is an iterated and recursive acronym for GiNaC is Not a CAS, where CAS stands for Computer Algebra System.

It has been specifically developed to become a replacement engine for xloops which is up to now powered by the Maple CAS. However, it is not restricted to high energy physics applications. Its design is revolutionary in a sense that contrary to other CAS it does not try to provide extensive algebraic capabilities and a simple programming language but instead accepts a given language (C++) and extends it by a set of algebraic capabilities.

Perplexed? Feel free to read this paper which describes the philosophy behind GiNaC in more detail. It also addresses some design principles and questions of efficiency, although some implementation details have changed since it was written.