--- a
+++ b/doc/simp.lyx
@@ -0,0 +1,1137 @@
+#LyX 1.5.6 created this file. For more info see http://www.lyx.org/
+\lyxformat 276
+\begin_document
+\begin_header
+\textclass article
+\language english
+\inputencoding auto
+\font_roman default
+\font_sans default
+\font_typewriter default
+\font_default_family default
+\font_sc false
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
+\graphics default
+\paperfontsize default
+\spacing single
+\papersize default
+\use_geometry false
+\use_amsmath 1
+\use_esint 1
+\cite_engine basic
+\use_bibtopic false
+\paperorientation portrait
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\author "" 
+\author "" 
+\end_header
+
+\begin_body
+
+\begin_layout Title
+Single Interval Mathematics Package for Octave
+\end_layout
+
+\begin_layout Standard
+
+\newpage
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset LatexCommand tableofcontents
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\newpage
+
+\end_layout
+
+\begin_layout Section
+Author and version
+\end_layout
+
+\begin_layout Standard
+I am Simone Pernice and I am the writer of the SIMP pachage.
+ If you find any bug or you want to add features, you can contact me at
+ pernice@libero.it.
+ You can find further details on my web site: simonepernice.freehostia.com
+\end_layout
+
+\begin_layout Standard
+List of versions of this document:
+\end_layout
+
+\begin_layout Itemize
+Version 1.0, Turin 14th December 2008, initial draft
+\end_layout
+
+\begin_layout Section
+Preface
+\end_layout
+
+\begin_layout Standard
+I am an engineer, I worked on hardware and software fields.
+ To design an electrical circuit is quite complex because the characteristics
+ of the components involved have huge tolerance some about 5%, while others
+ 80%.
+ The engineer has the target to have the circuit working in the worst case
+ of the components and of the environment.
+ That involves to compute several time the same equation putting inside
+ the worst or best case values.
+ Some time ago I was doing the usual design when I though, what if I use
+ intervals instead of numbers: I may get the results in just one step! Then
+ I went on the Internet looking for Interval Mathematics: I discovered it
+ was invented in the '50s.
+ Eventually I looked for a open source calculator able to manage intervals
+ instead of Numbers.
+ Unfortunately I was not able to find anything.
+ There are just some libraries for C++ language and packages for proprietary
+ software.
+ I was thinking to develop a calculator on my own, but I was not that happy
+ because it would have required a lot of effort.
+ Then I discovered Octave.
+ After a loot at its tutorial I decided to write a package to work on intervals
+ in Octave.
+ It was the right choice, because it tooks just three days while to make
+ a new program from scratch would have taken weeks.
+ The package extends the basic function to single interval mathematics,
+ it is called SIMP.
+ Unfortunately it is not possible to overload Octave operators, therefore
+ new functions working on matrix were added for that purpose.
+\end_layout
+
+\begin_layout Standard
+\begin_inset LatexCommand prettyref
+reference "sec:Introduction"
+
+\end_inset
+
+ shows why numbers are not the best tool when computing real world measures.
+ 
+\begin_inset LatexCommand prettyref
+reference "sec:Intervals"
+
+\end_inset
+
+ explains what is an interval and how a function can be extended to work
+ on intervals.
+ 
+\begin_inset LatexCommand prettyref
+reference "sec:Issues-with-interval"
+
+\end_inset
+
+ explains some issues to be aware when making interval calculations, which
+ are not present in the number computation.
+ 
+\begin_inset LatexCommand prettyref
+reference "sec:Single-Interval-Mathematics"
+
+\end_inset
+
+ shows some examples to explain how the SIMP package can be used.
+ Eventually the 
+\begin_inset LatexCommand prettyref
+reference "sec:Functions"
+
+\end_inset
+
+ provides the detailed list of functions available.
+\end_layout
+
+\begin_layout Section
+Introduction
+\begin_inset LatexCommand label
+name "sec:Introduction"
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+Every day we need to compute the result of a lot of simple mathematical
+ equations.
+ For example the cost of the apples bought at the supermarket is given by
+ the apple cost per kilo times the number of kilos bought: 
+\begin_inset Formula $applePrice=appleCostPerKilo\times kilosOfAppleBought$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+When we need the result of those mathematical expressions, we put the values
+ on the right side of the equation and we got its result on the left side.
+ Well, we usually put wrong numbers on the right side and therefore no doubt
+ we get wrong results.
+ There are a lot of reason why we put wrong values, below some of them follows:
+ 
+\end_layout
+
+\begin_layout Enumerate
+Most of the values are measured, therefore they are known within a given
+ tolerance (looking for accuracy and precision on Wikipedia will provide
+ interesting information); 
+\end_layout
+
+\begin_layout Enumerate
+Some values have an infinite number of digits after the decimal point, like
+ for 
+\begin_inset Formula $\pi$
+\end_inset
+
+ (the ratio between a circumference and its diameter); 
+\end_layout
+
+\begin_layout Enumerate
+Some values change with time or samples or whatever, like the weight of
+ a person (which can change of 5% during a day) or the current gain of a
+ BJT (which can change of 50% from the samples of the same series); 
+\end_layout
+
+\begin_layout Enumerate
+Some value are estimation or guess: something like between a minimum and
+ a maximum.
+ 
+\end_layout
+
+\begin_layout Standard
+For example if a pipe brakes and you want to buy a new one you need its
+ diameter.
+ If you do not have a caliber, you may measure its circumference and divide
+ it by 
+\begin_inset Formula $\pi$
+\end_inset
+
+ (3.1415...):
+\begin_inset Formula $diameter=\frac{circumference}{\pi}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+Here there are two errors: the circumference is knows with the tolerance
+ given by your meter, moreover 
+\begin_inset Formula $\pi$
+\end_inset
+
+ has an infinite number of digits while only few of them can be used in
+ the operation.
+ You may think the error is negligible, the result is enough accurate to
+ buy a new pipe in a hardware shop.
+ However the not infinite accuracy of those operation avoid the use of computers
+ as automatic theorem demonstration tools and so on...
+\end_layout
+
+\begin_layout Standard
+This kind of issue is quite common on engineer design.
+ What engineers do is to be sure their design will work in the worst case
+ or in most of the cases (usually more than 99.9%).
+ Here a simple example.
+ Let us say you want to repaint the walls of your living room completely
+ messed up by your children.
+ You need to compute how many paint cans you need to buy.
+ The equation is quite simple:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+paintCans=\frac{2\times\left(roomWidth+roomLength\right)\times roomHeight}{paintLitersPerCan\times paintEfficiency}\label{eq:paintCans}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+where paintEfficiency is how may square meter of surface can be painted
+ with a liter of paint.
+ The problem here is that usually we do not have a meter long enough to
+ measure the room width and length, it is much simpler to count the number
+ of steps to go through it (1 step is about 1m, let us say from 0.9 to 1.1m).
+ Moreover the paint provider usually declare a paint efficiency range.
+ Let us put below the data: 
+\end_layout
+
+\begin_layout Itemize
+roomWidth = 6 
+\end_layout
+
+\begin_layout Itemize
+steps roomLength = 4 
+\end_layout
+
+\begin_layout Itemize
+steps roomHeight = 3 
+\end_layout
+
+\begin_layout Itemize
+meters paintEfficiency = from 0.7 to 1.3 square meters per liter (1 liter
+ per square meter in average) 
+\end_layout
+
+\begin_layout Itemize
+paintLitersPerCan = 40 
+\end_layout
+
+\begin_layout Standard
+To compute the average result just put average values in 
+\begin_inset LatexCommand eqref
+reference "eq:paintCans"
+
+\end_inset
+
+.
+ We get: 
+\begin_inset Formula $paintCans=\frac{2\times\left(6+4\right)\times3}{40\times1}=1.5$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+paint cans, which means two unless you are able to buy just half of a can.
+ 
+\end_layout
+
+\begin_layout Standard
+Are you satisfied with that result? I am not.
+ What if I have underestimated something? As every good engineer I would
+ check what would happen in the worst case, which means 1.1m step and efficiency
+ of just 0.8.
+ Again just substituting those values in 
+\begin_inset LatexCommand eqref
+reference "eq:paintCans"
+
+\end_inset
+
+, we get: 
+\begin_inset Formula $paintCans=\frac{2\times\left(6.6+4.4\right)\times3}{40\times0.7}=2.36$
+\end_inset
+
+.
+ That is really interesting: in the worst case I would miss 0.36 cans, it
+ makes sense to buy three cans to avoid to go back to the hardware shop
+ to buy one more (in the worst case).
+ 
+\end_layout
+
+\begin_layout Standard
+More happy with the result now? I am not completely satisfied, I am asking
+ myself: what if in the best case I need just 1 can? In that case probably
+ I need more accurate data because the result range would be too wide.
+ Eventually from 
+\begin_inset LatexCommand eqref
+reference "eq:paintCans"
+
+\end_inset
+
+ we get: 
+\begin_inset Formula $paintCans=\frac{2\times\left(5.4+3.6\right)\times3}{40\times1.3}=1.04$
+\end_inset
+
+.
+ Which means two cans.
+ I am satisfied, I have to buy at least two cans, but probably I may need
+ one more.
+ In the next paragraph you will see how to do all this stuff in one step
+ using Octave and SIMP.
+ 
+\end_layout
+
+\begin_layout Section
+Intervals
+\begin_inset LatexCommand label
+name "sec:Intervals"
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+As you can see in the example above a lot of computations are required to
+ get an idea of the result.
+ To get the worst (and sometime is required also best) case, you need also
+ to think carefully at the equation because some time you need to put the
+ higher value (for steps) while other times the smallest (for efficiency)
+ to get the worst case and vice versa for the best.
+ There is a much simpler way to work with that issue.
+ You can use intervals instead of number.
+ An interval is:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+[a1,a2]=\left\{ \forall x\in\mathbb{R\mid\mathit{a1}\leqslant\mathit{x}\leqslant\mathit{a2}}\right\} ;a1,a2\in\mathbb{R\cup\left\{ -\infty,+\infty\right\} ;\mathit{a1}\leqslant\mathit{a2};}\label{eq:interval}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+In few words, [a, b] is the set of real numbers among a and b.
+ Please note that intervals suit perfectly in all the cases where numbers
+ do not fit (some were showed in the 
+\begin_inset LatexCommand prettyref
+reference "sec:Introduction"
+
+\end_inset
+
+).
+ Moreover if it is correct to use a number, it is possible to use a degenerate
+ interval like [a, a].
+ It is possible also to define functions that work on interval instead of
+ numbers:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+f\left([a1,a2],[b1,b2],...\right)=\left\{ \forall f(a,b,...)\in\mathbb{R}\mid\exists a\in[a1,a2],b\in[b1,b2],...\right\} \label{eq:functionOnInterval}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Please note, with that definition it is possible to extend every function
+ (like addition, multiplication, square, square root, ...) to work on intervals.
+ 
+\end_layout
+
+\begin_layout Standard
+Note also sometime a function may generate several intervals as result,
+ but in this package we will concentrate on single interval function.
+ I will give you an example: 
+\begin_inset Formula $[4,4]/[-2,2]=[-\infty,-2]\cup[2,+\infty]$
+\end_inset
+
+.
+ However the result is a double interval, for that reason if you try to
+ divide for a interval containing 0 in SIMP, you will get an error.
+\end_layout
+
+\begin_layout Standard
+Eventually note that the usually compute the interval result of a function
+ applied to intervals is computationally a long task.
+ In those case we are satisfied by a bigger interval containing the correct
+ interval.
+ However the target is always to get the smaller interval containing the
+ solution.
+ In the example above you would have:
+\end_layout
+
+\begin_layout Itemize
+roomWidth = [5.4, 6.6] meters 
+\end_layout
+
+\begin_layout Itemize
+roomLength = [3.6, 4.4] meters 
+\end_layout
+
+\begin_layout Itemize
+roomHeight = 3 = [3, 3] meters
+\end_layout
+
+\begin_layout Itemize
+paintEfficiency = [0.7, 1.3] square meters per liter 
+\end_layout
+
+\begin_layout Itemize
+paintLitersPerCan = 40 = [40, 40] liters per can
+\end_layout
+
+\begin_layout Standard
+Now you have just to compute the equation once with extended function to
+ get [1.04, 2.36] cans.
+ SIMP, the Octave package I developed, extends all the basic mathematical
+ functions and it provides functions to extend all other available Octave
+ functions.
+ 
+\end_layout
+
+\begin_layout Section
+Issues with interval computation
+\begin_inset LatexCommand label
+name "sec:Issues-with-interval"
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+There are few issues you need to know about interval computations.
+ 
+\end_layout
+
+\begin_layout Subsection
+Variables independence 
+\end_layout
+
+\begin_layout Standard
+All the variables you use to make a computation are independent from each
+ other, although they are the same instance of variable for you.
+ For example the perimeter of a rectangle (which was also used in a piece
+ of the equation 
+\begin_inset LatexCommand ref
+reference "eq:paintCans"
+
+\end_inset
+
+) can be written in several different ways.
+ If the dimensions of the rectangle are a end b we can write:
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+perimeter=2(a+b)\label{eq:perimetersmall}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+perimeter=a+a+b+b\label{eq:perimeterbig}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+In standard mathematics they are the same, while in interval mathematics
+ we have the interval 
+\begin_inset Formula $equation(\ref{eq:perimetersmall})\subseteqq equation(\ref{eq:perimeterbig})$
+\end_inset
+
+.
+ The reason is that every interval that appears in the equation is not dependent
+ from each other, therefore in equation 
+\begin_inset LatexCommand ref
+reference "eq:perimeterbig"
+
+\end_inset
+
+ is like having four different intervals.
+ What is important to remember is that: 
+\emph on
+Every variable should appear just once in the equation if possible in order
+ to get the smallest interval possible as result.
+\end_layout
+
+\begin_layout Subsection
+Hyper-cube Overlapping
+\end_layout
+
+\begin_layout Standard
+The result of a set of equation involving intervals is an Hyper-cube.
+ For example if we have just two equations in the unknowns x and y the result
+ will be a couple of intervals which draw a rectangle on the Cartesian plane.
+ However in general the solution will be smaller, for example just a segment.
+ In that case the rectangle will contain the solution.
+ There is no way to solve that, just remember the solution is usually a
+ super set of the actual one.
+\end_layout
+
+\begin_layout Section
+Introduction on how the package works 
+\begin_inset LatexCommand label
+name "sec:Single-Interval-Mathematics"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Installation
+\end_layout
+
+\begin_layout Standard
+First of all you have to install the SIMP package in Octave, so that Octave
+ will automatically load the new functions at every start.
+ To do that just run Octave from the directory where was downloaded the
+ package and execute the following command:
+\end_layout
+
+\begin_layout Itemize
+pkg install simp.tar.gz
+\end_layout
+
+\begin_layout Subsection
+Some example
+\end_layout
+
+\begin_layout Standard
+SIMP works on matrix, interpreted as intervals.
+ The basic interval is: [min, max], which in Octave is a row vector made
+ by two elements.
+ The added functions work on those matrix.
+ For example to add the intervals [5.4, 6.6] and [3.6, 4.4] it is possible to
+ write:
+\end_layout
+
+\begin_layout Itemize
+addInt ([5.4, 6.6], [3.6, 4.4])
+\end_layout
+
+\begin_layout Description
+> ans = [9, 11]
+\end_layout
+
+\begin_layout Standard
+addInt stands for add intervals.
+ It is possible to use scalar number instead of intervals.
+ Every scalar is computed like: 
+\begin_inset Formula $s=[s,s]$
+\end_inset
+
+.
+ Therefore the following computations give the same result:
+\end_layout
+
+\begin_layout Itemize
+addInt ([5.4, 6.6], 3.6)
+\end_layout
+
+\begin_layout Description
+> ans = [9, 10.2]
+\end_layout
+
+\begin_layout Itemize
+addInt ([5.4, 6.6], [3.6, 3.6])
+\end_layout
+
+\begin_layout Description
+> ans = [9, 10.2]
+\end_layout
+
+\begin_layout Standard
+Octave supports variable declaration, therefore it is possible to write:
+\end_layout
+
+\begin_layout Itemize
+roomWidth = [5.4, 6.6];
+\end_layout
+
+\begin_layout Itemize
+roomLength =[3.6, 4.4];
+\end_layout
+
+\begin_layout Itemize
+addInt (roomWidth, roomLength)
+\end_layout
+
+\begin_layout Description
+> ans = [9, 11]
+\end_layout
+
+\begin_layout Standard
+Now we know enough from Octave to compute the equation 
+\begin_inset LatexCommand ref
+reference "eq:paintCans"
+
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Itemize
+roomHeight = 3;
+\end_layout
+
+\begin_layout Itemize
+paintEfficiency = [0.7, 1.3]; 
+\end_layout
+
+\begin_layout Itemize
+paintLitersPerCan = 40; 
+\end_layout
+
+\begin_layout Itemize
+divInt(mulInt(2, addInt (roomWidth, roomLength), roomHeight), mulInt(paintLiters
+PerCan, paintEfficiency)) 
+\end_layout
+
+\begin_layout Description
+> ans = [1.0385, 2.3571]
+\end_layout
+
+\begin_layout Standard
+Sometime the intervals are expressed in terms of tolerance.
+ The electronic resistors are sold in several tolerances: 1%, 2%, 5%.
+ There is a function to easily make an interval from a tolerance.
+ For example a resistor of 10KOhms with 5% of tolerance can be converted
+ in an interval:
+\end_layout
+
+\begin_layout Itemize
+tollToInt (10000, 5)
+\end_layout
+
+\begin_layout Description
+> ans = [9500, 10500]
+\end_layout
+
+\begin_layout Standard
+If the tolerance is not symmetric, for example +5% and -10%:
+\end_layout
+
+\begin_layout Itemize
+tollToInt (10000, 5, -10)
+\end_layout
+
+\begin_layout Description
+> ans = [9000, 10500]
+\end_layout
+
+\begin_layout Standard
+All the computations are done among intervals, therefore if a result with
+ tolerance is required it is possible to get back the value and tolerance
+ of an interval in the hypothesis that the tolerance is symmetrical:
+\end_layout
+
+\begin_layout Itemize
+engFormInt([9500, 10500])
+\end_layout
+
+\begin_layout Description
+> 10K+-5%
+\end_layout
+
+\begin_layout Standard
+Eventually those functions work on vectors of intervals which may be useful
+ to compute functions.
+ It is possible to compute operation on vectors of the same size (element
+ by element) or scalar by vector.
+ In that case the scalar is expanded in a vector of the sime size of the
+ others.
+ That is really useful for the functions where a x vector can be used to
+ compute a y in just one time.
+\end_layout
+
+\begin_layout Standard
+As you can see SMIP can be used just like a calculator.
+ The basic operations are applied on intervals instead of scalar.
+ That makes really simple to evaluate equations where some data is uncertain.
+\end_layout
+
+\begin_layout Section
+Functions
+\begin_inset LatexCommand label
+name "sec:Functions"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This section describe the functions provided in the package.
+\end_layout
+
+\begin_layout Subsection
+Intervals
+\end_layout
+
+\begin_layout Standard
+An interval is described by a matrix with two columns and a row.
+ The matrix is composed by real numbers.
+ The first value is the interval minimum, the second is the interval maximum.
+ A real number is interpreted like an interval with the same maximum and
+ minimum.
+ It is also possible to write a vector of intervals: it is a matrix with
+ two columns and n rows, where every row is an interval.
+\end_layout
+
+\begin_layout Subsection
+addInt (a, b, c, ...) 
+\end_layout
+
+\begin_layout Standard
+addInt adds the given vector of intervals.
+ It returns 
+\begin_inset Formula $a+b+c+\ldots$
+\end_inset
+
+ .
+ They must have the same number of rows or be scalars.
+ At least two vectors are required.
+\end_layout
+
+\begin_layout Subsection
+negateInt (a)
+\end_layout
+
+\begin_layout Standard
+negateInt negates the given vector of intervals.
+ It returns 
+\begin_inset Formula $-a$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+subInt (a, b, c, ...)
+\end_layout
+
+\begin_layout Standard
+subInt subtracts the given vector of intervals.
+ It returns 
+\begin_inset Formula $a-b-c-\ldots$
+\end_inset
+
+ .
+ They must have the same number of rows or be scalar.
+ At least two vectors are required.
+\end_layout
+
+\begin_layout Subsection
+mulInt (a, b, c, ...)
+\end_layout
+
+\begin_layout Standard
+mulInt multiplies the given vector of intervals.
+ It returns 
+\begin_inset Formula $a\cdot b\cdot c\cdot\ldots$
+\end_inset
+
+ .
+ They must have the same number of rows or be scalar.
+ At least two vectors are required.
+\end_layout
+
+\begin_layout Subsection
+invertInt (a)
+\end_layout
+
+\begin_layout Standard
+invertInt inverts the given vector of intervals.
+ It returns 
+\begin_inset Formula $\frac{1}{a}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+invertAddInt (a, b, c, ...)
+\end_layout
+
+\begin_layout Standard
+invertAddInt adds the inverse of the given vector of intervals and then
+ inverts again the result.
+ It returns 
+\begin_inset Formula $\frac{1}{\frac{1}{a}+\frac{1}{b}+\frac{1}{c+\ldots}}$
+\end_inset
+
+.
+ They must have the same number of rows or be scalar.
+ At least two vectors are required.
+\end_layout
+
+\begin_layout Subsection
+divInt (a, b, c, ...)
+\end_layout
+
+\begin_layout Standard
+divInt divides the given vector of intervals.
+ It returns 
+\begin_inset Formula $\frac{\frac{a}{b}}{c}\ldots$
+\end_inset
+
+ .
+ They must have the same number of rows or be scalar.
+ At least two vectors are required.
+\end_layout
+
+\begin_layout Subsection
+powerInt (a, n)
+\end_layout
+
+\begin_layout Standard
+powerInt rise the given vector of intervals to the power of n.
+ It returns 
+\begin_inset Formula $a^{n}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+sqrInt (a)
+\end_layout
+
+\begin_layout Standard
+sqrInt squares the given vector of intervals.
+ It returns 
+\begin_inset Formula $a^{2}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+sqrtInt (a)
+\end_layout
+
+\begin_layout Standard
+sqrtInt square roots the given vector of intervals.
+ It returns 
+\begin_inset Formula $\sqrt{a}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+sqrAddInt (a, b, c, ...)
+\end_layout
+
+\begin_layout Standard
+addSqrInt adds the square of the given vector of intervals and then it squares
+ root the result.
+ It returns 
+\begin_inset Formula $\sqrt{a^{2}+b^{2}+c^{2}+\ldots}$
+\end_inset
+
+.
+ They must have the same number of rows or be scalar.
+ At least two vectors are required.
+\end_layout
+
+\begin_layout Subsection
+engFormInt (a)
+\end_layout
+
+\begin_layout Standard
+engFormInt prints the intervals in the vector a in engineer format.
+ It prints the average between minimum and maximum expressed with engineer
+ notation and add the tolerance in percentage.
+\end_layout
+
+\begin_layout Subsection
+dB10ToLinInt (a)
+\end_layout
+
+\begin_layout Standard
+db10ToLinInt rises 10 to the power of a tens.
+ It returns 
+\begin_inset Formula $10^{\frac{a}{10}}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+linToDB10Int (a)
+\end_layout
+
+\begin_layout Standard
+linToDB10Int produces 10 times the logarithm of a.
+ It returns 
+\begin_inset Formula $10log_{10}(a)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+dB20ToLinInt (a)
+\end_layout
+
+\begin_layout Standard
+db10ToLinInt rises 10 to the power of a twenties.
+ It returns 
+\begin_inset Formula $10^{\frac{a}{20}}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+linToDB20Int (a)
+\end_layout
+
+\begin_layout Standard
+linToDB10Int produces 20 times the logarithm of a.
+ It returns 
+\begin_inset Formula $20log_{10}(a)$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+valtol100ToInt (v, ptol, ntol)
+\end_layout
+
+\begin_layout Standard
+valtol100ToInt produces an interval with center value given by the scalar
+ v, and positive and negative tolerance express in percentage given by ptol
+ and ntol.
+ ntol is optional, if not present it is assumed equal to ptol.
+ It returns 
+\begin_inset Formula $[v(1+\frac{100}{ntol}),v(1+\frac{100}{ptol})]$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+intToTol (a)
+\end_layout
+
+\begin_layout Standard
+intToTol produces the tolerance of the vector of interval a, in the hypothesis
+ that the actual value is in the average point.
+ It returns 
+\begin_inset Formula $2\frac{a_{max}-a_{min}}{a_{max}+a_{min}}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+intToTol100 (a)
+\end_layout
+
+\begin_layout Standard
+intToTol100 produces the tolerance (expressed in percentage) of the vector
+ of interval a, in the hypothesis that the actual value is in the average
+ point.
+ It returns 
+\begin_inset Formula $200\frac{a_{max}-a_{min}}{a_{max}+a_{min}}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+intToVal (a)
+\end_layout
+
+\begin_layout Standard
+intToVal produces the central value of the vector of intervals a, in the
+ hypothesis that the actual value is in the average point.
+ It returns 
+\begin_inset Formula $\frac{a_{max}-a_{min}}{2}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+linSpaceTol100Int (begin, end, numberOfIntervals, tolerance)
+\end_layout
+
+\begin_layout Standard
+linSpaceTol100Int produces a vector of numberOfIntervals intervals equally
+ spaced between begin and end, with the given tolerance.
+\end_layout
+
+\begin_layout Subsection
+logSpaceTol100Int (begin, end, numberOfIntervals, tolerance)
+\end_layout
+
+\begin_layout Standard
+linSpaceTol100Int produces a vector of numberOfIntervals intervals equally
+ spaced between 
+\begin_inset Formula $10^{begin}$
+\end_inset
+
+ and 
+\begin_inset Formula $10^{end}$
+\end_inset
+
+, with the given tolerance.
+\end_layout
+
+\begin_layout Subsection
+monotonicFunctionInt (f, x)
+\end_layout
+
+\begin_layout Standard
+monotonicFunctionInt produces the y interval obtained applying the monotonic
+ function f to the interval x.
+ If f is not monotonic, y may be wrong.
+ It returns 
+\begin_inset Formula $[min(f(x_{min}),f(x_{max})),max(f(x_{min}),f(x_{max}))]$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+functionInt (f, x, nOfPoint)
+\end_layout
+
+\begin_layout Standard
+functionInt try to produces the y interval obtained applying the function
+ f to the interval x.
+ The function is checked for monotonicity on the given number of point.
+ nOfPoint is optional, default is 10.
+\end_layout
+
+\begin_layout Subsection
+plotInt (x, y)
+\end_layout
+
+\begin_layout Standard
+plotInt plots two curves.
+ Those curves, for every x interval center point, goes through ymin and
+ ymax.
+ x and y must have the same rows.
+\end_layout
+
+\begin_layout Subsection
+errorBarInt (x, y)
+\end_layout
+
+\begin_layout Standard
+For every x center point, plots the y tolerance.
+\end_layout
+
+\begin_layout Section
+Biography
+\end_layout
+
+\begin_layout Enumerate
+http://en.wikipedia.org/wiki/Interval_arithmetic
+\end_layout
+
+\begin_layout Enumerate
+http://www.cs.utep.edu/interval-comp/hayes.pdf
+\end_layout
+
+\begin_layout Enumerate
+http://www.gnu.org/software/octave/docs.html
+\end_layout
+
+\end_body
+\end_document