\documentclass[12pt]{amsart}

\usepackage[latin1]{inputenc}
\usepackage{pstricks}
\usepackage{picinpar}
\usepackage{graphicx}

\textwidth15.5cm \textheight21cm \oddsidemargin0.7cm
\evensidemargin-0.2cm
\parindent0cm
%\linespread{1.2}\normalsize

\frenchspacing
\parskip=1ex plus .25ex minus .25ex

\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{conjecture}[theorem]{Conjecture}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{corollary}[theorem]{Corollary}

\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{example}[theorem]{Example}
\newtheorem{algorithm}[theorem]{Algorithm}
\newtheorem{remark}[theorem]{Remark}

\newcounter{listi}
\newcounter{listii}
\newcounter{listiii}
\newcommand{\stdli}{ \topsep0ex \partopsep0ex % .5ex plus.25ex minus.125ex%
    \parsep.2ex plus.1ex minus.1ex \itemsep0ex% .5ex plus.25ex minus.125ex%
    \leftmargin2.5em \labelwidth2em \labelsep.5em \rightmargin0em}% \samepage }
\newenvironment{arab}{\begin{list}{\textup{(\arabic{listii})}}%
    {\usecounter{listii}\stdli}}{\end{list}}
\newenvironment{rome}{\begin{list}{\textup{(\roman{listi})}}%
    {\usecounter{listi}\stdli}}{\end{list}}
\newenvironment{latin}{\begin{list}{\textup{(\alph{listiii})}}%
    {\usecounter{listiii}\stdli}}{\end{list}}
\renewenvironment{itemize}{\begin{list}{{$\bullet$}}{\stdli}}{\end{list}}
\newenvironment{myverb}{\pagebreak[2]\begin{small}}{\end{small}\pagebreak[2]}

\newcommand{\keyw}[1]{{\bf #1}}
\newcommand{\Q}{{\mathbb Q}}
\newcommand{\Z}{{\mathbb Z}}
\newcommand{\N}{{\mathbb N}}
\newcommand{\X}{{\mathbb X}}
\newcommand{\C}{{\mathbb C}}
\newcommand{\R}{\mathbb R}
\newcommand{\Hilbert}{\mathcal H}
\newcommand{\FourTiTwo}{{\tt 4ti2}}
\newcommand{\Normaliz}{{\tt Normaliz}}
\newcommand{\boproof}{\noindent {\bf Proof. }}
\newcommand{\eoproof}{\hspace*{\fill} $\square$ \vspace{5pt}}

\DeclareMathOperator{\cone}{cone}
\DeclareMathOperator{\monoid}{monoid}
\DeclareMathOperator{\lattice}{lattice}
\def\cA{{\mathcal A}}

\usepackage{enumerate}
\def\ve#1{\mathchoice{\mbox{\boldmath$\displaystyle\bf#1$}}
{\mbox{\boldmath$\textstyle\bf#1$}}
{\mbox{\boldmath$\scriptstyle\bf#1$}}
{\mbox{\boldmath$\scriptscriptstyle\bf#1$}}}
\newcommand\vea{{\ve a}}
\newcommand\veb{{\ve b}}
\newcommand\vecc{{\ve c}}
\newcommand\ved{{\ve d}}
\newcommand\vece{{\ve e}}
\newcommand\vef{{\ve f}}
\newcommand\veg{{\ve g}}
\newcommand\veh{{\ve h}}
\newcommand\vem{{\ve m}}
\newcommand\vep{{\ve p}}
\newcommand\veq{{\ve q}}
\newcommand\ver{{\ve r}}
\newcommand\ves{{\ve s}}
\newcommand\vet{{\ve t}}
\newcommand\veu{{\ve u}}
\newcommand\vev{{\ve v}}
\newcommand\vew{{\ve w}}
\newcommand\vex{{\ve x}}
\newcommand\vey{{\ve y}}
\newcommand\vez{{\ve z}}
\newcommand{\seq}{\subseteq}



\setlength{\parindent}{0pt}
%\setlength{\parskip}{2ex plus 0.4ex minus 0.4ex}

%\overfullrule5pt

\begin{document}

\title{\textsf{jNormaliz}  1.6}

\author[V. Almendra]{Vinicius Almendra}
\address{V. Almendra\\ Institute of Mathematics "Simion Stoilow" of the Romanian Academy\\ C.P. 1-764\\ 010702 Bucharest\\ Romania}
\email{vinicius.almendra@gmail.com}
\author[B. Ichim]{Bogdan Ichim}
\address{Bogdan Ichim\\ Institute of Mathematics "Simion Stoilow" of the Romanian Academy\\ C.P. 1-764\\ 010702 Bucharest\\ Romania}
\email{bogdan.ichim@imar.ro}
\date{\today}

\begin{abstract}
This is the release of the version 1.6 of \textsf{jNormaliz}, a graphical interface for \textsf{Normaliz}  version 2.12. \textsf{Normaliz} is a
program for the computation of Hilbert bases of rational cones and
the normalizations of affine monoids. It may also be used for
solving diophantine linear systems of inequalities, equations and
congruences.
\end{abstract}

\maketitle

\section{Introduction}
\label{Section: Introduction}
\let\thefootnote\relax\footnotetext{Acknowledgement: B. Ichim was partially supported  by project  PN-II-RU-TE-2012-3-0161, granted by the Romanian National Authority for Scientific Research,
CNCS - UEFISCDI,
during the development of \textsf{jNormaliz 1.6}.}

\textsf{jNormaliz} 1.6 \cite{AI} is a graphical interface for \textsf{Normaliz} compatible with version 2.12.
The program \textsf{Normaliz} \cite{Normaliz} is mainly a tool  for
computing Hilbert bases. It may also be used for
solving diophantine linear systems of inequalities, equations and
congruences.

Several related computations are also integrated. Using
\textsf{Normaliz}, one may compute the following:

\begin{arab}
\item the Hilbert basis and the support hyperplanes of a rational cone.
The cone may be given by:
\begin{rome}
\item a system of generators;
\item a linear system of inequalities, equations and congruences;
\item the binomial equations of the (monoid) generators.
\end{rome}
\item the lattice points and the support hyperplanes of an integral polytope;
\item the generators of the integral closure of the Rees algebra of a monomial ideal
$I\seq K[X_1,\dots,X_n]$ and the generators of the integral closure
of $I$.
\end{arab}

If the associated monoid is homogeneous in a certain sense or a specific grading is added to the input file, then one
may also compute the Hilbert series and the Hilbert quasipolynomial of the
monoid.

The graphical interface \textsf{jNormaliz} offers a text editor for the input files, visualization of the output files and facilities to run or stop \textsf{Normaliz}
without having to deal with the command-line details. The software also allows keeping track of how computation evolves, through a console where the verbose output of
\textsf{Normaliz} is displayed,  a timer and a memory gauge. The interface is written in Java. That allowed us to combine the good portability
(on different operating systems) of the graphical elements provided by Java with the
computational advantages of the C++ implementation of \textsf{Normaliz}.

 For the algorithms implemented by \textsf{Normaliz} see \cite{BK} (starting
with version 1.0), \cite{BI} (introduced in version 2.0),
\cite{BHIKS} (describing changes in version 2.5) and \cite{BIS1} (the  additions in version 2.8). A
full description of the user interface (version 2.2) is contained in
\cite{BI02} and the changes to version 2.5 are available in \cite{BIS}.

\section{Installation and system requirements}

\textsf{jNormaliz} should work on all platforms were Java can run. It has been tested on Windows,
Linux and MacOS. To run \textsf{jNormaliz}, it is necessary to have Java runtime version 1.6.0 (or a newer version). If the operating system architecture is 64 bits, the
Java runtime used should also be 64 bits; otherwise, the information about the memory usage  might be displayed incorrectly. Notice that \textsf{jNormaliz} requires an
installed reader of PDF files in order to view the associated documentation files.

If you intend to use \textsf{jNormaliz} 1.6, you should also have installed \textsf{Normaliz} version 2.12.

 \textsf{jNormaliz} should be installed over an existing installation of \textsf{Normaliz}, unzipping the contents of the file \texttt{jnormaliz.zip} inside the directory
 where \textsf{Normaliz} is installed. \textsf{jNormaliz} depends on this, as it assumes that the executable files are in the same directory where the file
 \texttt{jnormaliz.jar} is.

\textsf{jNormaliz} is composed by a Java executable (the file \texttt{jnormaliz.jar}),  some third-party libraries (in the folder \texttt{lib/}), the source files (in the
folder \texttt{source/jNormaliz})  and this documentation (in the folder \texttt{doc/}).

\section{Overview of the graphical interface}


\begin{figure}[b]
  \centering
  \includegraphics[width = 100 mm]{figure-input-file.jpg}\\          %bb=0 0 843 568 for .dvi file bb=0 0 207 140
  \caption{Interface with input file loaded}\label{interface}
\end{figure}

The interface \textsf{jNormaliz} (see Fig. \ref{interface}) is divided into four main areas: the menu bar, the toolbar, the tabbed panel and the status line. Follows a
brief description of each element.

The {\bf menu bar} contains the following submenus.

\begin{rome}
\item The {\bf File} menu presents to the user the next options.
\begin{latin}
\item  {\it Open}. Opens an existing input file.  If the user tries to open a file without the extension .in (that is a input file for \textsf{Normaliz}),
    \textsf{jNormaliz} will refuse it and will display an error message.
\item {\it New}. Creates a new input file and loads it in \textsf{jNormaliz}. Associated with this option there is a {\it New file dialog} (Fig. \ref{new}) which allows
    the user to specify the name of the new file, the dimensions of the input matrix and the {\it mode} (see also the \textsf{Normaliz} manual for information on
    the available modes). The generated input file will contain a matrix in the specified dimensions filled up with zeros.

 \begin{figure}[h]
  \centering
  \includegraphics[width = 80 mm]{figure-new-file.jpg}\\   %bb=0 0 479 305 for .dvi file
  \caption{The new file dialog}\label{new}
\end{figure}

\item {\it Close}. Closes the currently opened input file, interrupting ongoing calculations.
\item {\it Save}. Saves the input file. Notice that this option will only be available if the input file has been modified.  Also remark that when a file  suffers any
    modification in the editor, \textsf{jNormaliz} appends a $*$ to its name in the title bar.
\item {\it Save as}. Allows saving the currently opened input file under another name.
\item {\it Print}. Prints the contents of the currently selected tab in the tabbed panel (input file, output file or console).
\item {\it Exit}. Exits the application, offering the option of interrupting ongoing calculations.
\end{latin}
\item The {\bf Edit} menu contains standard functions for editing text files.
\begin{latin}
\item {\it Undo}. Undoes the most recent editing operation in the input file.
\item {\it Cut}. Cuts the selected text from the input file.
\item {\it Copy}. Copies the selected text into the clipboard. It is active on input files, output files and on the console.
\item {\it Paste}. Pastes the text from the clipboard into the input file.
\end{latin}
\item The {\bf  Normaliz} menu has just two commands  used for starting ({\it Run}) and interrupting ({\it Stop}) computations with \textsf{Normaliz}. The same commands
    are also available in the toolbar.
\item The {\bf Help} menu gives the user fast access to the documentation distributed together with \textsf{Normaliz}.
\begin{latin}
\item {\it Help}. Opens this file.
\item {\it Open Normaliz manual}. Opens the PDF file containing the full user documentation of \textsf{Normaliz}.
\item {\it Open Normaliz website}. Opens the \textsf{Normaliz} homepage in the default web browser.
\item {\it Mathematical background}. Opens a dialog containing a short description and a link to some of the articles describing the algorithms used by \textsf{Normaliz}.
\item {\it About}. Displays a box containing information about \textsf{jNormaliz}.
\end{latin}
\end{rome}


\begin{figure}[b]
  \centering
  \includegraphics[width = 80 mm]{figure-out-file.jpg}\\         %bb=0 0 678 568 for .dvi file
  \caption{Output file tab}\label{output}
\end{figure}

The \emph{\bf toolbar} gives the user fast access to the most used commands.

\begin{rome}
\item {\bf Run} button. Starts computations on the currently opened input file. After a successful execution, the content of the output file is updated with the results.
\item {\bf Stop} button. Interrupts computations.
\item {\bf Algorithm} box. Allows choosing which algorithm will be used the next time \textsf{Normaliz} will run. For details, see \textsf{Normaliz}
    manual (available from the Help menu).
\item {\bf Computational mode} box. Allows choosing which computations will be performed the next time \textsf{Normaliz} will run. For details, see \textsf{Normaliz}
    manual (available from the Help menu).
\item {\bf Precision} box. Allows choosing the arithmetic precision to be used while running \textsf{Normaliz} (64 bits or infinite precision). For details on arithmetic
    limitations, see \textsf{Normaliz} manual (available from the Help menu).
\end{rome}

The \emph{\bf tabbed panel} presents the user the following four tabs.

\begin{rome}

\item {\bf Input} tab (Fig. \ref{interface}). It shows the currently open input file. Notice that this tab is only shown when there is an open input file.
\item {\bf Output} tab (Fig. \ref{output}). Contains the \textsf{Normaliz} output file (if available). If \textsf{NmzIntegrate} options are activated (during the program run), 
 will contain the \textsf{NmzIntegrate} output file (after running the program). In order to get the original \textsf{Normaliz} output file it 
 needs to run \textsf{Normaliz} without \textsf{NmzIntegrate} options activated. 
\item {\bf Console} tab (Fig. \ref{console}). This tab shows the console output of \textsf{Normaliz}, together with some extra information (the command line commands, the
    date and time of each \textsf{Normaliz} call). With this tab is is possible to track \textsf{Normaliz} execution, as it is updated in real-time. The user can also
    select and copy the
contents of the console to some other application.

 \begin{figure}[t]
  \centering
  \includegraphics[width = 80 mm]{figure-console.jpg}\\          %bb=0 0 678 568 for .dvi file
  \caption{Console tab}\label{console}
\end{figure}

\item {\bf Options} tab (Fig. \ref{options}). This tab groups some options regarding \textsf{Normaliz}, \textsf{jNormaliz} and \textsf{NmzIntegrate}.

 \begin{figure}[h]
  \centering
  \includegraphics[width = 80 mm]{figure-options.jpg}\\           %bb=0 0 802 400 for .dvi file
  \caption{Options tab}\label{options}
\end{figure}

\begin{latin}
\item {\it Output options}. This group controls which output files are generated by \textsf{Normaliz}. Notice that only the
.out file is displayed by \textsf{jNormaliz}. For more details about this grup of options consult \textsf{Normaliz}
manual.
\item {\it Run tests for arithmetic overflow}. When checked, \textsf{Normaliz} will try to detect arithmetic errors (see \textsf{Normaliz} manual).
\item {\it Control the number of parallel threads}. When checked, the user controls the maximum number of parallel threads generated by \textsf{Normaliz}. When not, \textsf{Normaliz} will generate the maximum number (depending on the particular system where it is running).
The maximum number of parallel threads allowed can be set in the box below.
\item {\it Font size}. Changes the font size used to show and print the input file, the output file and the
console.
\item {\it NmzIntegrate options}. This group controls the option for \textsf{NmzIntegrate} called  by \textsf{Normaliz}. For more details about this group of options consult \textsf{Normaliz}
manual and \textsf{NmzIntegrate} manual. In case one option in this group is active, the output tab will contain the \textsf{NmzIntegrate} output file. 
\end{latin}

\end{rome}

Remark that below the text box there is a link for the folder where the input and output files are. Clicking this
link opens the folder in the systems default file manager.

The \emph{\bf status line} displays three useful pieces of information.

\begin{rome}
\item {\bf Elapsed time} of the current or last \textsf{Normaliz} execution.
\item A gauge displaying how much {\bf physical memory} is currently available, and also the total physical memory available.
\item An icon indicating that there is a currently {\bf running computation}.
\end{rome}



\section{Limitations}

Only one input file can be loaded at one time in \textsf{jNormaliz}. However, the user can run other instances
of \textsf{jNormaliz} in order to deal with multiple input files simultaneously.

\section{Information for Developers}

\textsf{jNormaliz}  was developed using Netbeans version 6.8. It uses the following third-party libraries:
\begin{arab}
\item A modified version of JavaSysMon 0.3.1, from Jez Humble
(available at \\ http://wiki.github.com/jezhumble/javasysmon/).
\item Jakarta Commons Exec 1.0.1 (available at http://commons.apache.org/exec/)
\end{arab}

\section{Copyright}

\textsf{jNormaliz} is free software licensed under the GNU
General Public License, version 3. You can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

It is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.

You should have received a copy of the GNU General Public License
along with the program. If not, see http://www.gnu.org/licenses/.

\textsf{jNormaliz} should always be distributed together with the corresponding version of \textsf{Normaliz}. Please refer to \textsf{Normaliz} in the following manner in
any
publication or related work for which it has been used:

\begin{center}
W. Bruns, B. Ichim, T. Römer  and C. Söger: \textsf{Normaliz}. Algorithms for
rational cones and affine monoids. Available from
http://www.math.uos.de/normaliz.
\end{center}

It is now customary to evaluate mathematicians by such data as
numbers of publications, citations and impact factors. The data
bases on which such dubious evaluations are based do not list
mathematical software. Therefore we ask you to cite the article
\cite{BIS1} in addition. This is very helpful for the younger
members of the team.

\begin{thebibliography}{99}

\bibitem{AI} V. Almendra and B. Ichim: {\em jNormaliz. A graphical interface for Normaliz}.
Available at http://www.math.uos.de/normaliz.

\bibitem{BHIKS} W. Bruns, R. Hemmecke, B. Ichim, M. Köppe, and C. Söger. {\em
Challenging computations of Hilbert bases of cones associated with
algebraic statistics}. Exp. Math. {\bf 20}, No. 1, (2011),
25--33.

\bibitem{BI} W. Bruns and B. Ichim. {\em Normaliz: algorithms for
    affine monoids and rational cones.} J. Algebra {\bf 324}, No. 5, (2010),
1098--1113.

\bibitem{BI02} W. Bruns and B. Ichim. {\em Introduction to Normaliz 2.2.}  In Acta Univ.
Apulensis, D. Breaz (ed.) et al., Proceedings of ICTAMI 2009,
pp.~113--132.

\bibitem{Normaliz} W. Bruns, B. Ichim and C. Söger. {\em \textsf{Normaliz}.
    Algorithms for rational cones and affine monoids.}  Available at http://www.math.uos.de/normaliz.

\bibitem{BIS} W. Bruns, B. Ichim and C. Söger. {\em Introduction to Normaliz 2.5.} LNCS {\bf 6327}  (2010), , Proceedings of ICMS 2010,
pp.~209--212.

\bibitem{BIS1} W.Bruns, B. Ichim and C. Söger. {\em The power of
    pyramid decompositions in Normaliz}. Preprint arXiv:1206.1916.

\bibitem{BK}
W. Bruns and R. Koch. {\em Computing the integral closure of an
affine semigroup.} Univ. Iagel. Acta Math.  {\bf 39}  (2001),
59--70.

\end{thebibliography}

\end{document}
