Add Intro and Getting Started pages
authorPeter Kovacs <kpeter@inf.elte.hu>
Sat, 11 Oct 2008 13:13:09 +0200
changeset 30cf8882c7e7c
parent 2 9388ccf86294
child 4 89f6fff82e93
Add Intro and Getting Started pages
Doxyfile
LICENSE
getting_started.dox
intro.dox
license.dox
mainpage.dox
     1.1 --- a/Doxyfile	Sat Oct 11 11:29:12 2008 +0200
     1.2 +++ b/Doxyfile	Sat Oct 11 13:13:09 2008 +0200
     1.3 @@ -84,7 +84,7 @@
     1.4  #---------------------------------------------------------------------------
     1.5  # configuration options related to the input files
     1.6  #---------------------------------------------------------------------------
     1.7 -INPUT                  = ./ \
     1.8 +INPUT                  = . \
     1.9                           ./demo
    1.10  INPUT_ENCODING         = UTF-8
    1.11  FILE_PATTERNS          = *.h \
    1.12 @@ -95,7 +95,8 @@
    1.13  EXCLUDE_SYMLINKS       = NO
    1.14  EXCLUDE_PATTERNS       = 
    1.15  EXCLUDE_SYMBOLS        = 
    1.16 -EXAMPLE_PATH           = ./demo
    1.17 +EXAMPLE_PATH           = . \
    1.18 +                         ./demo
    1.19  EXAMPLE_PATTERNS       = 
    1.20  EXAMPLE_RECURSIVE      = NO
    1.21  IMAGE_PATH             = ./images \
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/LICENSE	Sat Oct 11 13:13:09 2008 +0200
     2.3 @@ -0,0 +1,33 @@
     2.4 +LEMON code without an explicit copyright is covered by the following
     2.5 +copyright/license.
     2.6 +
     2.7 +Copyright (C) 2003-2008 Egervary Jeno Kombinatorikus Optimalizalasi
     2.8 +Kutatocsoport (Egervary Combinatorial Optimization Research Group,
     2.9 +EGRES).
    2.10 +
    2.11 +Permission is hereby granted, free of charge, to any person or organization
    2.12 +obtaining a copy of the software and accompanying documentation covered by
    2.13 +this license (the "Software") to use, reproduce, display, distribute,
    2.14 +execute, and transmit the Software, and to prepare derivative works of the
    2.15 +Software, and to permit third-parties to whom the Software is furnished to
    2.16 +do so, all subject to the following:
    2.17 +
    2.18 +The copyright notices in the Software and this entire statement, including
    2.19 +the above license grant, this restriction and the following disclaimer,
    2.20 +must be included in all copies of the Software, in whole or in part, and
    2.21 +all derivative works of the Software, unless such copies or derivative
    2.22 +works are solely in the form of machine-executable object code generated by
    2.23 +a source language processor.
    2.24 +
    2.25 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    2.26 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    2.27 +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
    2.28 +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
    2.29 +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
    2.30 +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    2.31 +DEALINGS IN THE SOFTWARE.
    2.32 +
    2.33 +===========================================================================
    2.34 +This license is a verbatim copy of the Boost Software License, Version 1.0.
    2.35 +
    2.36 +
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/getting_started.dox	Sat Oct 11 13:13:09 2008 +0200
     3.3 @@ -0,0 +1,160 @@
     3.4 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     3.5 + *
     3.6 + * This file is a part of LEMON, a generic C++ optimization library.
     3.7 + *
     3.8 + * Copyright (C) 2003-2008
     3.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    3.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES).
    3.11 + *
    3.12 + * Permission to use, modify and distribute this software is granted
    3.13 + * provided that this copyright notice appears in all copies. For
    3.14 + * precise terms see the accompanying LICENSE file.
    3.15 + *
    3.16 + * This software is provided "AS IS" with no warranty of any kind,
    3.17 + * express or implied, and with no claim as to its suitability for any
    3.18 + * purpose.
    3.19 + *
    3.20 + */
    3.21 +
    3.22 +/**
    3.23 +\page getting_started How to Start Using LEMON
    3.24 +
    3.25 +In this page we detail how to start using LEMON, from downloading it to
    3.26 +your computer, through the steps of installation, to showing a simple
    3.27 +"Hello World" type program that already uses LEMON. We assume that you
    3.28 +have a basic knowledge of your operating system and C++ programming
    3.29 +language. The procedure is pretty straightforward, but if you have any
    3.30 +difficulties don't hesitate to
    3.31 +<a href="mailto:lemon-user@lemon.cs.elte.hu"><b>ask</b></a>.
    3.32 +
    3.33 +\section requirements_lemon Hardware and Software Requirements
    3.34 +
    3.35 +In LEMON we use C++ templates heavily, thus compilation takes a
    3.36 +considerable amount of time and memory. So some decent box would be
    3.37 +advantageous. But otherwise there are no special hardware requirements.
    3.38 +
    3.39 +You will need a recent C++ compiler. Our primary target is the GNU C++
    3.40 +Compiler (g++), from version 3.3 upwards. We also checked the Intel C++
    3.41 +Compiler (icc) and Microsoft Visual C++ .NET 2003, 2005.
    3.42 +If you want to develop with LEMON under Windows you could consider
    3.43 +using Cygwin.
    3.44 +
    3.45 +In this description we will suppose a Linux environment and GNU C++ Compiler.
    3.46 +
    3.47 +\subsection requirements_lp LP Solver Requirements
    3.48 +
    3.49 +The LEMON LP solver interface can use the GLPK (GNU Linear Programming
    3.50 +Kit), CPLEX (was tested with CPLEX 7.5) and SoPlex solver. If you want
    3.51 +to use it you will need at least one of these. See \ref configure_flags
    3.52 +how to enable these at compile time.
    3.53 +
    3.54 +\section download_lemon How to Download LEMON
    3.55 +
    3.56 +You can download LEMON from the LEMON web site:
    3.57 +<a href="http://lemon.cs.elte.hu/">https://lemon.cs.elte.hu/</a>.
    3.58 +There you will find released versions in form of <tt>.tar.gz</tt> files.
    3.59 +If you want a developer version (for example you want to contribute in
    3.60 +developing the library LEMON) then you might want to use our Mercurial
    3.61 +repository. This case is detailed later, so from now on we suppose that
    3.62 +you downloaded a <tt>.tar.gz</tt> file.
    3.63 +
    3.64 +\section install_lemon How to Install LEMON
    3.65 +
    3.66 +In order to install LEMON you have to do the following steps.
    3.67 +
    3.68 +Download the tarball (named <tt>lemon-x.y.z.tar.gz</tt> where \c x, \c y
    3.69 +and \c z are numbers indicating the version of the library, in our example
    3.70 +we will have <tt>lemon-1.0.tar.gz</tt>) and issue the following commands:
    3.71 +
    3.72 +\verbatim
    3.73 +tar xvzf lemon-1.0.tar.gz
    3.74 +cd lemon-1.0
    3.75 +./configure
    3.76 +make
    3.77 +make check    # This is optional, but recommended. It runs a bunch of tests.
    3.78 +make install
    3.79 +\endverbatim
    3.80 +
    3.81 +These commands install LEMON under \c /usr/local (you will
    3.82 +need root privileges to be able to install to that
    3.83 +directory). If you want to install it to some other place, then
    3.84 +pass the \c --prefix=DIRECTORY flag to <tt>./configure</tt>, for example:
    3.85 +
    3.86 +\verbatim
    3.87 +./configure --prefix=/home/username/lemon
    3.88 +\endverbatim
    3.89 +
    3.90 +In what follows we will assume that you were able to install to directory
    3.91 +\c /usr/local, otherwise some extra care is to be taken to use the library.
    3.92 +
    3.93 +We briefly explain these commands below.
    3.94 +
    3.95 +\verbatim
    3.96 +tar xvzf lemon-1.0.tar.gz
    3.97 +\endverbatim
    3.98 +This command untars the <tt>tar.gz</tt> file into a directory named
    3.99 +<tt>lemon-1.0</tt>.
   3.100 +
   3.101 +\verbatim
   3.102 +cd lemon-1.0
   3.103 +\endverbatim
   3.104 +This command enters the directory.
   3.105 +
   3.106 +\verbatim
   3.107 +./configure
   3.108 +\endverbatim
   3.109 +This command runs the configure shell script, which does some checks and
   3.110 +creates the makefiles.
   3.111 +
   3.112 +\verbatim
   3.113 +make
   3.114 +\endverbatim
   3.115 +This command compiles the non-template part of LEMON into <tt>libemon.a</tt>
   3.116 +file. It also compiles the programs in the tools and demo subdirectories
   3.117 +when enabled.
   3.118 +
   3.119 +\verbatim
   3.120 +make check
   3.121 +\endverbatim
   3.122 +This step is optional, but recommended. It runs the test programs that
   3.123 +we developed for LEMON to check whether the library works properly on
   3.124 +your platform.
   3.125 +
   3.126 +\verbatim
   3.127 +make install
   3.128 +\endverbatim
   3.129 +This command will copy the directory structure to its final destination
   3.130 +(e.g. to \c /usr/local) so that your system can access it.
   3.131 +This command should be issued as "root", unless you provided a
   3.132 +\c --prefix switch to the \c configure to install the library in
   3.133 +non-default location.
   3.134 +
   3.135 +Several other configure flags can be passed to <tt>./configure</tt>.
   3.136 +For more information see <tt>./configure --help</tt> and the INSTALL
   3.137 +file in the install directory.
   3.138 +
   3.139 +\section hg_checkout How to Checkout LEMON from our Mercurial Repository
   3.140 +
   3.141 +You can obtain the latest version of LEMON from our Mercurial repository.
   3.142 +To do this issue the following command:
   3.143 +\verbatim
   3.144 +hg clone http://lemon.cs.elte.hu/hg/lemon lemon-src
   3.145 +\endverbatim
   3.146 +
   3.147 +\section hg_compile How to Compile the Source from the Repository
   3.148 +
   3.149 +You can compile the code from the repository similarly to the packaged
   3.150 +version, but you will need to run <b><tt>autoreconf -vif</tt></b> or
   3.151 +<b><tt>./bootstrap</tt></b> in some older environment before
   3.152 +<tt>./configure</tt>. See <tt>./configure --help</tt> for options.
   3.153 +For bootstrapping you will need the following tools:
   3.154 +
   3.155 + - <a href="http://www.gnu.org/software/automake/">automake</a> (1.7 or newer)
   3.156 + - <a href="http://www.gnu.org/software/autoconf/">autoconf</a> (2.59 or newer)
   3.157 + - <a href="http://www.gnu.org/software/libtool/">libtool</a>
   3.158 + - <a href="http://pkgconfig.freedesktop.org/">pkgconfig</a>
   3.159 +
   3.160 +To generate the documentation, run <tt>make html</tt>.
   3.161 +You will need <a href="http://www.doxygen.org/">Doxygen</a> for this.
   3.162 +
   3.163 +*/
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/intro.dox	Sat Oct 11 13:13:09 2008 +0200
     4.3 @@ -0,0 +1,45 @@
     4.4 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     4.5 + *
     4.6 + * This file is a part of LEMON, a generic C++ optimization library.
     4.7 + *
     4.8 + * Copyright (C) 2003-2008
     4.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    4.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES).
    4.11 + *
    4.12 + * Permission to use, modify and distribute this software is granted
    4.13 + * provided that this copyright notice appears in all copies. For
    4.14 + * precise terms see the accompanying LICENSE file.
    4.15 + *
    4.16 + * This software is provided "AS IS" with no warranty of any kind,
    4.17 + * express or implied, and with no claim as to its suitability for any
    4.18 + * purpose.
    4.19 + *
    4.20 + */
    4.21 +
    4.22 +/**
    4.23 +\page intro Introduction
    4.24 +
    4.25 +\section intro_lemon What is LEMON
    4.26 +
    4.27 +LEMON stands for <b>L</b>ibrary of <b>E</b>fficient <b>M</b>odels and
    4.28 +<b>O</b>ptimization in <b>N</b>etworks. It is a C++ template
    4.29 +library aimed at combinatorial optimization tasks which often involve
    4.30 +in working with graphs.
    4.31 +
    4.32 +<b>LEMON is an <a class="el" href="http://opensource.org/">open&nbsp;source</a>
    4.33 +project.
    4.34 +You are free to use it in your commercial or non-commercial applications
    4.35 +under very permissive \ref license "license terms".
    4.36 +</b>
    4.37 +
    4.38 +\section intro_tutorial LEMON Tutorial
    4.39 +
    4.40 +This tutorial introduces the reader to the basic concepts and features of
    4.41 +LEMON, and there are some sections about advanced topics showing the power
    4.42 +of the various tools implemented in the library.
    4.43 +
    4.44 +After getting familiar with the basic concepts you may start using LEMON
    4.45 +with the help of the detailed documentation (that can also be used as a
    4.46 +reference manual).
    4.47 +
    4.48 +*/
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/license.dox	Sat Oct 11 13:13:09 2008 +0200
     5.3 @@ -0,0 +1,25 @@
     5.4 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
     5.5 + *
     5.6 + * This file is a part of LEMON, a generic C++ optimization library.
     5.7 + *
     5.8 + * Copyright (C) 2003-2008
     5.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    5.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES).
    5.11 + *
    5.12 + * Permission to use, modify and distribute this software is granted
    5.13 + * provided that this copyright notice appears in all copies. For
    5.14 + * precise terms see the accompanying LICENSE file.
    5.15 + *
    5.16 + * This software is provided "AS IS" with no warranty of any kind,
    5.17 + * express or implied, and with no claim as to its suitability for any
    5.18 + * purpose.
    5.19 + *
    5.20 + */
    5.21 +
    5.22 +/**
    5.23 +
    5.24 +\page license License Terms
    5.25 +
    5.26 +\verbinclude ./LICENSE
    5.27 +
    5.28 +*/
     6.1 --- a/mainpage.dox	Sat Oct 11 11:29:12 2008 +0200
     6.2 +++ b/mainpage.dox	Sat Oct 11 13:13:09 2008 +0200
     6.3 @@ -20,7 +20,7 @@
     6.4  /**
     6.5  \mainpage LEMON Tutorial
     6.6  
     6.7 -<h2>Table of Contents</h2>
     6.8 +\section toc Table of Contents
     6.9  
    6.10  <ol>
    6.11    <li>\ref intro "Introduction"</li>