# Installation

## Requirements

The program requires

• Java version 8 or upwards.
• JavaView mathematical visualisation software from javaview.de. Alas not open-source.
• JEP 2.4.1 Java Expression Parser, a mathematical parser evaluator from my fork jep-java-gpl which contains some small customisation of the package to fit the needs of the SingSurf program.
• The automated build process uses Apache Ant. It should be relatively easy to compile in java without ant.
• To compile JUnit 4 must be available, but is not required to run. It is a good idea to register your version of JavaView. Registration provides a license file jv-lic.lic which should be copied to the rsrc directory, this prevents a notification message appearing.

A different version of this program is available for use with the newer 3.5/4.0 commercial release of Jep from singularsys.com. This has a more flexible parser but is otherwise identical in operation.

## Installation and running

### Source code release

For the git source code, there are three different main classes

• org.singsurf.singsurf.SingSurf3D the 3D version with all sub-types
• org.singsurf.singsurf.SingSurf2D the 2D version, with setting for examining curves in the plane
• org.singsurf.singsurf.ASurfSimp a simplified version just with the algebraic surface component

To compile first set environment variables for Jep, Javaview home directories and the Junit jar. Using 'bash' on linux use

 export JEP_HOME=C:/User/rich/git/jep-java-gpl
export JAVAVIEW_HOME=C:/Users/rich/bin/javaview
export JUNIT_JAR="org.junit_4.13.0.jar;org.hamcrest.core_1.3.0.jar"

the ant build file could then be run using

 ant -DJEP_HOME=$JEP_HOME -DJAVAVIEW_HOME=$JAVAVIEW_HOME -Djunit.jar=\$JUNIT_JAR

this will compile the java classes.

To run the main 3D version on unix

 ./singsurf.sh

This will use the JEP_HOME and JAVAVIEW_HOME environment variable if set, otherwise it will read values specified in the script.

On windows use

 singsurf.bat

The script will need to be edited to set the location of the Jep and Javaview home directories.

Both versions have variables which can be set to change the amount of memory allocated or the font sizes used.

### Bundled release

A zip file with an executable jar file and all necessary files is available from singsurf.org. Once unpacked this can be run using a single line Java command. This include the necessary Jep and JavaView files.

Once unzipped the main SingSurf3D program can be used by running either

 ./singsurf.sh

on Linux or Macs via a command prompt or for Windows use

 singsurf.bat

### Javaview licence file

For best operation you should obtain a license file for the JavaView program. This prevents a red error message appearing on the main window. To obtain the file complete JavaView registration and a file will be automatically sent to you. Once you have it place it in the rsrc sub-directory of the JavaView home directory or the rsrc sub-directory of the SingSurf home directory for the bundled release.

For any installation problems contact rich@singsurf.org.

## Manual

A rather unfinished PDF manual for the whole package.

Msqli defined