GiNaC 1.8.10
version.h
Go to the documentation of this file.
1
5/*
6 * GiNaC Copyright (C) 1999-2026 Johannes Gutenberg University Mainz, Germany
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <https://www.gnu.org/licenses/>.
20 */
21
22#ifndef GINAC_VERSION_H
23#define GINAC_VERSION_H
24
25/* Major version of GiNaC */
26#define GINACLIB_MAJOR_VERSION 1
27
28/* Minor version of GiNaC */
29#define GINACLIB_MINOR_VERSION 8
30
31/* Micro version of GiNaC */
32#define GINACLIB_MICRO_VERSION 10
33
34// GiNaC library version information. It has very little to do with GiNaC
35// version number. In particular, library version is OS dependent.
36//
37// When making releases, do
38// 1. Increment GINAC_LT_REVISION
39// 2. If any interfaces have been added, removed, or changed since the last
40// release, increment GINAC_LT_CURRENT and set GINAC_LT_REVISION to 0.
41// 3. If any interfaces have been added since the last release, increment
42// GINAC_LT_AGE.
43// 4. If any interfaces have been removed since the last release, set
44// GINAC_LT_AGE to 0.
45//
46// Please note: the libtool naming scheme cannot guarantee that on all
47// systems, the numbering is consecutive. It only guarantees that it is
48// increasing. This doesn't matter, though: there is not incurred cost
49// for numbers that are omitted, except for shrinking the available space
50// of leftover numbers. Not something we need to worry about yet. ;-)
51//
52// On Linux, the SONAME is libginac.so.$(GINAC_LT_CURRENT)-$(GINAC_LT_AGE).
53//
54// TODO, when breaking the SONAME:
55// * change matrix inverse to use default argument (twice)
56// * check for interfaces marked as deprecated
57#define GINAC_LT_CURRENT 14
58#define GINAC_LT_REVISION 2
59#define GINAC_LT_AGE 1
60
61/*
62 * GiNaC archive file version information.
63 *
64 * The current archive version is GINACLIB_ARCHIVE_VERSION. This is
65 * the version of archives created by the current version of GiNaC.
66 * Archives version (GINACLIB_ARCHIVE_VERSION - GINACLIB_ARCHIVE_AGE)
67 * thru * GINACLIB_ARCHIVE_VERSION can be read by current version
68 * of GiNaC.
69 *
70 * Backward compatibility notes:
71 * If new properties have been added:
72 * GINACLIB_ARCHIVE_VERSION += 1
73 * GINACLIB_ARCHIVE_AGE += 1
74 * If backwards compatibility has been broken, i.e. some properties
75 * has been removed, or their type and/or meaning changed:
76 * GINACLIB_ARCHIVE_VERSION += 1
77 * GINACLIB_ARCHIVE_AGE = 0
78 */
79#define GINACLIB_ARCHIVE_VERSION 3
80#define GINACLIB_ARCHIVE_AGE 3
81
82#define GINACLIB_STR_HELPER(x) #x
83#define GINACLIB_STR(x) GINACLIB_STR_HELPER(x)
84#define GINACLIB_VERSION \
85 GINACLIB_STR(GINACLIB_MAJOR_VERSION) "." \
86 GINACLIB_STR(GINACLIB_MINOR_VERSION) "." \
87 GINACLIB_STR(GINACLIB_MICRO_VERSION)
88
89namespace GiNaC {
90
91extern const int version_major;
92extern const int version_minor;
93extern const int version_micro;
94
95} // namespace GiNaC
96
97#endif // ndef GINAC_VERSION_H
Definition add.cpp:35
const int version_minor
Definition utils.cpp:32
const int version_major
Definition utils.cpp:31
const int version_micro
Definition utils.cpp:33

This page is part of the GiNaC developer's reference. It was generated automatically by doxygen. For an introduction, see the tutorial.