]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.2.15
authorfred <fred>
Tue, 26 Mar 2002 22:51:02 +0000 (22:51 +0000)
committerfred <fred>
Tue, 26 Mar 2002 22:51:02 +0000 (22:51 +0000)
Documentation/BLURB.in [deleted file]
Documentation/COPYRIGHT [deleted file]
Documentation/MANIFESTO.texi [deleted file]
input/test/repeat-semifold.ly [deleted file]
lily/encompass-info.cc [deleted file]
lily/include/encompass-info.hh [deleted file]
test/GNUmakefile [deleted file]
test/bow.cc [deleted file]
test/hash.cc [deleted file]
test/int.cc [deleted file]

diff --git a/Documentation/BLURB.in b/Documentation/BLURB.in
deleted file mode 100644 (file)
index 52e0ef5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-LilyPond is a music typesetter.  It produces beautiful sheet music
-using a high level description file as input.  LilyPond is part of 
-the GNU Project.
diff --git a/Documentation/COPYRIGHT b/Documentation/COPYRIGHT
deleted file mode 100644 (file)
index 1628105..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-[Note to uninitiated readers.  This is a Q&A document that explains
-what to watch out for when submitting scores for the Mutopia project.
-The Mutopia project is an effort to accumulate an archive of sheet
-music that is in the public domain.  The project should be similar to
-the Gutenberg project.
-
-We will be using music typesetting software to produce the software.
-The project will only accept music for composers that have passed into
-the PD.  The sole remaining problem is caused by the editorial
-changes.  A recent edition may contain editorial amendments that are
-not in the PD, so we cannot simply copy the music from recent
-editions.]
-
-
-
-What is copyright?
-
-Copyright is a legal system that protects the expressions of ideas.
-It was originally conceived to foster development of art and
-knowledge.
-
-Copyright law gives "owners" of the expressions the right to restrict
-reproductions of these expressions and collect fees.  In this way they
-can earn a living.  For example, a poet may restrict xeroxing and
-public performances of his poems, and demand a fee for print for
-prints and performances.
-
-After some time ---for most forms of expression, this is 70 years
-after the author died--- the work goes into the public domain, which
-means that all restrictions are lifted.  You can print, perform and
-modify the works as much as you like.
-
-Copyright law is internationalised.  In most countries the conditions
-from the Berne convention have been adopted.
-
-
-
-
-How does copyright work for music scores?
-
-Let's analyze how a printed score  is produced:
-
-1.  The composer composes music.
-
-2.  An editor edits the music, based on the composer's manuscript and
-on other editions.
-
-3.  An engraver lays out the editor's product.
-
-As you can see, there are three individuals, whose expressions are
-protected by copyright law.  Since we are interested in the scores
-that are in the PD.
-
-The copyright on the music itself passes into the PD 70 years after
-the death of the composer.  (Or XXXX years after publication if the
-work is published posthumously.)
-
-The copyright on the editorial changes pass in to the PD 70 years
-after death of the editor, or XXX years after publication.  Depending on YYY
-
-The copyright of the engraver is of no interest to us, since we will
-not reproduce any of the layout.
-
-
-
-What are editorial changes?
-
-
-
-
-
-
-How do I find out what changes might be copyrighted?
-
-You cannot copyright something you did not create yourself.  So if you
-find the same editorial changes across different editions it is
-unlikely that it is copyrighted.
-
-
-
-
-Urtexts?
-
-
-
-Scores that are not marked with dates?
-
-
diff --git a/Documentation/MANIFESTO.texi b/Documentation/MANIFESTO.texi
deleted file mode 100644 (file)
index 4900adb..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@setfilename MANIFESTO.info
-@settitle MANIFESTO - Rationale behind the GNU LilyPond project
-
-@node Top, , Goals for mudela, (dir)
-@top
-@menu
-* MANIFESTO - Rationale behind the GNU LilyPond project::MANIFESTO - Rationale behind the GNU LilyPond project
-@end menu
-
-
-
-@node MANIFESTO - Rationale behind the GNU LilyPond project, Goals for LilyPond, , Top
-@menu
-* Goals for LilyPond::            Goals for LilyPond
-* Development constraints::       Development constraints
-* Goals for mudela::              Goals for mudela
-@end menu
-@chapter MANIFESTO -- Rationale behind the GNU LilyPond project
-
-
-@node Goals for LilyPond, Development constraints, MANIFESTO - Rationale behind the GNU LilyPond project, MANIFESTO - Rationale behind the GNU LilyPond project
-@section Goals for LilyPond
-
-GNU LilyPond was written with some considerations in mind:
-
-@itemize @bullet
-@item  Describing a well-defined language for defining music. We call
-    this language (rather arrogantly) The Musical Definition Language
-    (mudela for short). GNU LilyPond reads a mudela sourcefile and outputs a
-    TeX file.  
-@item  Providing an easy-to-use interface for typesetting music in
-    its broadest sense. This interface should be intuitive from a musical
-    point of view. By broadest sense we mean: it is designed for music
-    printed left to right in staffs, using notes to designate rythm and
-    pitch.
-@item Generating high-quality output. Ideally it should be of a professional
-    quality. We'd like to render Herbert Chlapiks words, "Fine music
-    setting is not possible without a knowledgeable printer,"  untrue.
-@item Making a system which is fully tweakable. It should be possible to
-    typeset a book on how not to typeset music.
-@end itemize
-
-@node Development constraints, Goals for mudela, Goals for LilyPond, MANIFESTO - Rationale behind the GNU LilyPond project
-@section Development constraints
-
-Further considerations while doing the programming
-
-@itemize @bullet
-@item GNU LilyPond uses TeX for its output. This is not a key issue: in a
-    future version, GNU LilyPond might bypass TeX, but at the moment TeX
-    is convenient for producing output.
-@item GNU LilyPond does not display notes directly, nor will it be rehacked
-    to be used interactively. GNU LilyPond writes output to a file.  It
-    will not be extended to play music, or to recognize music.
-@item GNU LilyPond is intended to run on Unix platforms, but it should
-    be portable to any platform which can run TeX and the GNU tools
-@item GNU LilyPond is free. Commercial windows packages for setting music are
-    abundant. Free musicprinting software is scarce. For more thoughts on
-    this, please consult the @file{gnu-music} documentation.
-@item GNU LilyPond is written in GNU C++. It will not be downgraded/ported to fit
-    broken systems.
-@end itemize
-
-@node Goals for mudela, Top, Development constraints, MANIFESTO - Rationale behind the GNU LilyPond project
-@section Goals for mudela
-
-The design of Mudela has been (perfect past tense, hopefully) an
-ongoing process, the most important criteria being:
-
-@itemize @bullet
-@item define the (musical) message of the composer as unambiguously as possible.
-    This means that, given a piece Mudela, it should be possible for a
-    program to play a reasonable interpretation of the piece.
-
-    It also means that, given a piece of Mudela, it should be possible for a
-    program to print a score of the piece.
-@item be intuitive, and easily readable (compared to, say, Musi*TeX input,
-    or MIDI :-),
-@item be easily writable in ASCII with a simple texteditor
-@end itemize
-
-Other considerations were (and will be):
-
-@itemize @bullet
-@item be able to edit the layout without danger of changing the original
-    music (Urtext),
-@item allow for adding different interpretations, again, 
-    without danger of changing the original,
-@item easy to create a conductor's score, 
-    as well as the scores for all individual instruments,
-@item provide simple musical manipulations, such as @emph{i} extracting a
-    slice of music from a previously defined piece, @emph{ii} extracting
-    only the rhythm from a piece of music, @emph{iii} transposing, etc.,
-@item easy to comprehend to both programmers and others.
-@end itemize
-
-One of the things that (might) be here would be: feasible to use in a
-graphic editor. We don't have experience with these beasts, so we
-don't know how to do this. Comments appreciated.
-
-Musical pieces could be
-
-@itemize @bullet
-@item Orchestral scores, (eg Mahler)
-@item piano pieces (eg. Schubert, Rachmaninov),
-@item pop songs (lyrics and chords),
-@item Gregorian chants,
-@item Bach multivoice organ pieces,
-@item Short excerpts to be used in musicological publications.
-@end itemize
-
-
-@bye
diff --git a/input/test/repeat-semifold.ly b/input/test/repeat-semifold.ly
deleted file mode 100644 (file)
index d059595..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-
-%  no alts.
-\score { \notes
-  \relative c'' {
-\repeat volta 3 { c^"3$\\times$ 0alt" d }
-% less alts than body
-\repeat volta 4 { c^"4$\\times$ 2alt" d } \alternative { e f }
-
-% more alts than body
-\repeat volta 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } 
-}}
-
diff --git a/lily/encompass-info.cc b/lily/encompass-info.cc
deleted file mode 100644 (file)
index aebad06..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-  encompass-info.cc -- implement Encompass_info
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1998--1999 Jan Nieuwenhuizen <janneke@gnu.org>
-
-*/
-#include "dimension-cache.hh"
-#include "proto.hh"
-#include "stem.hh"
-#include "note-column.hh"
-#include "paper-def.hh"
-#include "encompass-info.hh"
-#include "slur.hh"
-#include "staff-symbol.hh"
-#include "note-head.hh"
-#include "debug.hh"
-#include "align-element.hh"
-
-Encompass_info::Encompass_info ()
-{
-}
-
-Encompass_info::Encompass_info (Note_column const* note_column, Direction dir, Slur const* slur_l)
-{
-  interstaff_f_ = 0;
-  
-  Stem* stem_l = note_column->stem_l_;
-  if (!stem_l)
-    {
-      warning (_ ("Slur over rest?"));
-      o_[X_AXIS] = note_column->hpos_f ();
-      o_[Y_AXIS] = note_column->extent (Y_AXIS)[dir];
-      return; 
-    }
-  
-  o_[X_AXIS] = stem_l->hpos_f ();
-
-  /*
-    Simply set x to middle of notehead
-   */
-
-  o_[X_AXIS] -= 0.5 * stem_l->dir_ * note_column->extent (X_AXIS).length ();
-
-  if ((stem_l->dir_ == dir)
-      && !stem_l->extent (Y_AXIS).empty_b ())
-    {
-      o_[Y_AXIS] = stem_l->extent (Y_AXIS)[dir];
-    }
-  else
-    {
-      o_[Y_AXIS] = note_column->extent (Y_AXIS)[dir];
-    }
-
-  /*
-   leave a gap: slur mustn't touch head/stem
-   */
-  o_[Y_AXIS] += dir * slur_l->paper_l ()->get_var ("slur_y_free");
-
-  Graphical_element *common = stem_l->common_refpoint (slur_l, Y_AXIS);
-  Align_element * align = dynamic_cast<Align_element*> (common);
-  if (align && align->axis() == Y_AXIS)
-    {
-      if (align->threshold_interval_[MIN] != 
-         align->threshold_interval_[MAX])
-       warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"));
-
-      interstaff_f_ = align->threshold_interval_[MIN];
-
-      Graphical_element const * slur_refpoint = slur_l;
-      while (slur_refpoint->parent_l  (Y_AXIS) != common)
-       slur_refpoint = slur_refpoint->parent_l (Y_AXIS);
-
-      Graphical_element const * note_refpoint = note_column;
-      while (note_refpoint->parent_l (Y_AXIS) != common)
-       note_refpoint = note_refpoint->parent_l (Y_AXIS);
-
-      int slur_prio =
-       align->get_priority ((Score_element*) dynamic_cast<Score_element const*> (slur_refpoint));
-      int stem_prio =
-       align->get_priority ((Score_element*) dynamic_cast<Score_element  const *> (note_refpoint));
-
-      /*
-       our staff is lower -> interstaff_f_ *= -1
-       */
-
-      if (slur_prio < stem_prio)
-       interstaff_f_ *= -1;
-      o_[Y_AXIS] += interstaff_f_;
-    }
-}
diff --git a/lily/include/encompass-info.hh b/lily/include/encompass-info.hh
deleted file mode 100644 (file)
index 04caf77..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-  encompass-info.hh -- declare Encompass_info
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1998--1999 Jan Nieuwenhuizen <janneke@gnu.org>
-
-*/
-
-#ifndef ENCOMPASS_INFO_HH
-#define ENCOMPASS_INFO_HH
-
-#include "lily-proto.hh"
-#include "direction.hh"
-#include "offset.hh"
-
-struct Encompass_info
-{
-  Encompass_info ();
-  Encompass_info (Note_column const*, Direction, Slur const *);
-
-  Offset o_;
-  // junkme
-  Real interstaff_f_;
-};
-
-#endif // ENCOMPASS_INFO_HH
diff --git a/test/GNUmakefile b/test/GNUmakefile
deleted file mode 100644 (file)
index f4392fb..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# title           makefile for test
-# test/Makefile
-
-depth = ..
-
-NAME = lily-test
-MODULE_NAME = lily-test
-
-MODULE_CXXFLAGS = -I$(depth)/flower/include -I$(depth)/flower -I$(depth)/lily/include -I$(depth)/lily
-STEPMAKE_TEMPLATES=c++
-
-include $(depth)/make/stepmake.make
-
-# default: $(EXECUTABLE)
-
-# include $(stepdir)/Executable.make
-
diff --git a/test/bow.cc b/test/bow.cc
deleted file mode 100644 (file)
index 4185388..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-// vim:sw=2 makeprg=g++\ -g\ bow.cc\ -o\ bow
-#include <iostream.h>
-#define PT
-// #define STAFFHEIGHT 16.0
-#define STAFFHEIGHT 20.0
-
-#define UP 1
-#define DOWN (-1)
-
-// mmm
-#define STANDALONE
-
-#include <math.h>
-
-typedef void *Paper_def;
-
-bool experimental_features_global_b = true;
-//bool experimental_features_global_b = false;
-
-#include "bezier.hh"
-
-#if 0
-#include "offset.cc"
-#include "interval.cc"
-#endif
-
-#include "misc.cc"
-#include "bezier.cc"
-
-struct Point
-{
-  Real x, y;
-};
-
-void
-out (Bezier_bow& b)
-{
-  cout << "save dx,dy,x,y;\n";
-  for (int i = 0; i < 4; i++)
-      cout << "z" << i + 1 << " = (" << b.control_[i].x ()
-       << ", " << b.control_[i].y () << ");\n";
-  for (int i = 1; i < 3; i++)
-      cout << "z" << i + 4 << " = (" << b.return_[i].x ()
-       << ", " << b.return_[i].y () << ");\n";
-#if 0
-  cout << "pickup pencircle scaled 0.5pt#;\n";
-  cout << "draw z2--z3; draw (50,0)-- 0.5[z2,z3];\n";
-#endif
-  cout << "pickup pencircle scaled 4pt#;\n";
-  for (int i = 0; i < 4; i++)
-    cout << "drawdot z" << i + 1 << ";\n";
-  cout << "path boogje;\n";
-#if 0
-  cout << "pickup pencircle scaled 0.4pt#;\n";
-  cout << "boogje=z1..controls z2 and z3..z4..controls z5 and z6..cycle;\n";
-  cout << "filldraw boogje;\n";
-#else
-  cout << "pickup pencircle scaled 1.6pt#;\n";
-  cout << "boogje=z1..controls z2 and z3..z4;\n";
-  cout << "draw boogje;\n";
-  cout << "pickup pencircle scaled 0.4pt#;\n";
-  cout << "boogje:=z4..controls z5 and z6..z1;\n";
-  cout << "draw boogje;\n";
-#endif
-  cout << "showit; shipit;clearit;" << endl;
-}
-
-void
-bow (Point* points, int n, int d)
-{
-  Array<Offset> notes;
-  for (int i = 0; i < n; i++)
-    notes.push (Offset (points[i].x, points[i].y));
-#if 1
-  cout << "pickup pencircle scaled 8pt#;\n";
-#else
-  cout << "pickup pencircle scaled 2pt#;\n";
-#endif
-  for (int i = 0; i < n; i++)
-    cout << "drawdot (" << notes[i].x () << ", " << notes[i].y () << ");\n";
-  Bezier_bow b (0);
-  b.set (notes, d);
-  b.calc ();
-  out (b);
-  return;
-}
-
-int
-main ()
-{
-  //cout.unsetf(ios::scientific);
-  cout.setf(ios::fixed);
-#if 1
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,1 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,30, 60,30, 80,0, 100,1 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,10, 100,1 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,40, 100,1 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,40, 80,0, 100,1 }, 6, 1);
-  bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, 1);
-  bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1);
-  bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,100 }, 6, -1);
-  bow ((Point[9]){ 0,0, 20,0, 40,-80, 60,0, 80,0, 100,0, 120,0, 140,0, 160,-1 }, 9, -1);
-  bow ((Point[9]){ 0,0, 40,0, 80,180, 120,0, 160,0, 200,0, 240,0, 280,0, 320,1 }, 9, 1);
-  bow ((Point[9]){ 
-  {0, 0}, 
-  {19.10645980317711, 1}, 
-  {29.402919606354207, 28}, 
-  {55.389379409531308, 1}, 
-  {73.530839212708514, 1}, 
-  {91.672299015885727, 1}, 
-  {111.35901367452229, 1}, 
-  {131.04572833315891, 1}, 
-  {145.76744299179552, 0}
-  }, 
-  9, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,40 }, 6, 1);
-  bow ((Point[2]){ 0,0, 20,0 }, 2, 1);
-  bow ((Point[2]){ 0,0, 20,-10 }, 2, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,100 }, 6, 1);
-
-  bow ((Point[6]){ 0,0, 20,-10, 40,20, 60,-20, 80,20, 100,0 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,-10, 40,20, 60,-20, 80,20, 100,0 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,100 }, 6, -1);
-
-  bow ((Point[6]){ 0,-10, 20,-20, 40,0, 60,-40, 80,-20, 100,-50 }, 6, 1);
-
-  bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1);
-#endif
-
-#if 1
-  //clipping
-
-  bow ((Point[6]){ 0,0, 20,60, 40,0, 60,0, 80,0, 100,1 }, 6, 1);
-
-  bow ((Point[6]){ 0,1, 20,0, 40,0, 60,0, 80,60, 100,0 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,20, 100,100 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-20, 100,-100 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1);
-  bow ((Point[7]){ 0,0, 20,40, 100,0, 150,0, 200,0, 280,40, 300,0 }, 7, 1);
-  bow ((Point[7]){ 0,0, 20,-40, 100,0, 150,0, 200,0, 280,-40, 300,0 }, 7, -1);
-  bow ((Point[7]){ 0,20, 20,40, 100,0, 150,0, 200,0, 280,40, 300,20 }, 7, 1);
-  bow ((Point[3]){ 0,0, 10,10, 20,-20 }, 3, 1);
-
-  bow ((Point[4]){ 0,0, 33,100, 75,0, 100,100 }, 4, -1);
-  bow ((Point[4]){ 0,0, 33,-100, 75,0, 100,-100 }, 4, 1);
-#endif
-
-#if 1
-  // infeasible
-
-  bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,-40, 40,0, 60,20, 80,20, 100,40 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,-20, 40,-20, 60,-20, 80,-80, 100,-40 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1);
-#endif
-
-  cout << "\\end" << endl;
-
-  return 0;
-}
-
diff --git a/test/hash.cc b/test/hash.cc
deleted file mode 100644 (file)
index ee67572..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <stdio.h>
-#include <iostream.h>
-#include "dictionary-iter.hh"
-
-
-
-main ()
-{
-  Dictionary<String> *dict = new Dictionary<String>;
-  
-  char s[1000];
-
-  dict->elem("foo") = "bar";
-  dict->elem("bla") = "ba";
-  dict->elem("blo") = "bar";
-  
-  while (gets (s))
-    {
-      String str (s);
-
-      int l = str.length_i ();
-
-      dict->elem (str.left_str (l/2)) = str.right_str (l/2);
-    }
-
-  int i=1000;
-  while (i--)
-    {
-      Dictionary<String> *dict2=new Dictionary<String> (*dict);
-      delete dict;
-      dict = dict2;
-    }
-
-  for (Dictionary_iter<String> i (*dict); i.ok (); i++)
-    {
-      cout << i.key () << " == " << i.val () << endl;
-      cout << "elem_b: " << dict->elem_b (i.key ()) << ", key " << i.key () << " val " << dict->elem (i.key ()) <<endl;
-    }
-}
diff --git a/test/int.cc b/test/int.cc
deleted file mode 100644 (file)
index 47b5243..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// vim:sw=2 makeprg=g++\ -g\ bow.cc\ -o\ bow
-#include <iostream.h>
-#define PT
-// #define STAFFHEIGHT 16.0
-#define STAFFHEIGHT 20.0
-
-#define UP 1
-#define DOWN (-1)
-
-// mmm
-#define STANDALONE
-
-#include <math.h>
-
-typedef void *Paper_def;
-
-bool experimental_features_global_b = true;
-
-#include "misc.cc"
-
-int
-main ()
-{
-  //cout.unsetf(ios::scientific);
-  cout.setf(ios::fixed);
-
-  Array<Real> a;
-  a.push (3.4);
-  a.push (3.9);
-  Interval iv;
-
-  iv = quantise_iv (a, 4, 3.5);
-  cout << "iv: " << iv.min () << ", " << iv.max () << endl;
-
-  iv = quantise_iv (a, 4, -1.5);
-  cout << "iv: " << iv.min () << ", " << iv.max () << endl;
-
-  iv = quantise_iv (a, 4, -7.5);
-  cout << "iv: " << iv.min () << ", " << iv.max () << endl;
-
-  iv = quantise_iv (a, 4, 3.4);
-  cout << "iv: " << iv.min () << ", " << iv.max () << endl;
-
-  iv = quantise_iv (a, 4, 3.9);
-  cout << "iv: " << iv.min () << ", " << iv.max () << endl;
-
-  cout << "\\end" << endl;
-
-  return 0;
-}
-