DELETED CVSROOT/checkoutlist
Index: CVSROOT/checkoutlist
==================================================================
--- CVSROOT/checkoutlist
+++ /dev/null
@@ -1,14 +0,0 @@
-# The "checkoutlist" file is used to support additional version controlled
-# administrative files in $CVSROOT/CVSROOT, such as template files.
-#
-# The first entry on a line is a filename which will be checked out from
-# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
-# The remainder of the line is an error message to use if the file cannot
-# be checked out.
-#
-# File format:
-#
-#	[<whitespace>]<filename><whitespace><error message><end-of-line>
-#
-# comment lines begin with '#'
-syncmail

DELETED CVSROOT/commitinfo
Index: CVSROOT/commitinfo
==================================================================
--- CVSROOT/commitinfo
+++ /dev/null
@@ -1,15 +0,0 @@
-# The "commitinfo" file is used to control pre-commit checks.
-# The filter on the right is invoked with the repository and a list 
-# of files to check.  A non-zero exit of the filter program will 
-# cause the commit to be aborted.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being committed to, relative
-# to the $CVSROOT.  For the first match that is found, then the remainder
-# of the line is the name of the filter to run.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".

DELETED CVSROOT/config
Index: CVSROOT/config
==================================================================
--- CVSROOT/config
+++ /dev/null
@@ -1,11 +0,0 @@
-# Set this to "no" if pserver shouldn't check system users/passwords
-#SystemAuth=no
-
-# Set `PreservePermissions' to `yes' to save file status information
-# in the repository.
-#PreservePermissions=no
-
-# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
-# level of the new working directory when using the `cvs checkout'
-# command.
-#TopLevelAdmin=no

DELETED CVSROOT/cvswrappers
Index: CVSROOT/cvswrappers
==================================================================
--- CVSROOT/cvswrappers
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file affects handling of files based on their names.
-#
-# The -t/-f options allow one to treat directories of files
-# as a single file, or to transform a file in other ways on
-# its way in and out of CVS.
-#
-# The -m option specifies whether CVS attempts to merge files.
-#
-# The -k option specifies keyword expansion (e.g. -kb for binary).
-#
-# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
-#
-#  wildcard	[option value][option value]...
-#
-#  where option is one of
-#  -f		from cvs filter		value: path to filter
-#  -t		to cvs filter		value: path to filter
-#  -m		update methodology	value: MERGE or COPY
-#  -k		expansion mode		value: b, o, kkv, &c
-#
-#  and value is a single-quote delimited value.
-# For example:
-#*.gif -k 'b'

DELETED CVSROOT/editinfo
Index: CVSROOT/editinfo
==================================================================
--- CVSROOT/editinfo
+++ /dev/null
@@ -1,21 +0,0 @@
-# The "editinfo" file is used to allow verification of logging
-# information.  It works best when a template (as specified in the
-# rcsinfo file) is provided for the logging procedure.  Given a
-# template with locations for, a bug-id number, a list of people who
-# reviewed the code before it can be checked in, and an external
-# process to catalog the differences that were code reviewed, the
-# following test can be applied to the code:
-#
-#   Making sure that the entered bug-id number is correct.
-#   Validating that the code that was reviewed is indeed the code being
-#       checked in (using the bug-id number or a seperate review
-#       number to identify this particular code set.).
-#
-# If any of the above test failed, then the commit would be aborted.
-#
-# Actions such as mailing a copy of the report to each reviewer are
-# better handled by an entry in the loginfo file.
-#
-# One thing that should be noted is the the ALL keyword is not
-# supported.  There can be only one entry that matches a given
-# repository.

DELETED CVSROOT/loginfo
Index: CVSROOT/loginfo
==================================================================
--- CVSROOT/loginfo
+++ /dev/null
@@ -1,30 +0,0 @@
-# The "loginfo" file controls where "cvs commit" log information
-# is sent.  The first entry on a line is a regular expression which must match
-# the directory that the change is being made to, relative to the
-# $CVSROOT.  If a match is found, then the remainder of the line is a filter
-# program that should expect log information on its standard input.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name ALL appears as a regular expression it is always used
-# in addition to the first matching regex or DEFAULT.
-#
-# You may specify a format string as part of the
-# filter.  The string is composed of a `%' followed
-# by a single format character, or followed by a set of format
-# characters surrounded by `{' and `}' as separators.  The format
-# characters are:
-#
-#   s = file name
-#   V = old version number (pre-checkin)
-#   v = new version number (post-checkin)
-#
-# For example:
-#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
-# or
-#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
-
-# Lines to mail changes
-CVSROOT $CVSROOT/CVSROOT/syncmail %{sVv} gawthrop@users.sourceforge.net
-DEFAULT $CVSROOT/CVSROOT/syncmail %{sVv} mtt-checkins@lists.sourceforge.net

DELETED CVSROOT/modules
Index: CVSROOT/modules
==================================================================
--- CVSROOT/modules
+++ /dev/null
@@ -1,26 +0,0 @@
-# Three different line formats are valid:
-#	key	-a    aliases...
-#	key [options] directory
-#	key [options] directory files...
-#
-# Where "options" are composed of:
-#	-i prog		Run "prog" on "cvs commit" from top-level of module.
-#	-o prog		Run "prog" on "cvs checkout" of module.
-#	-e prog		Run "prog" on "cvs export" of module.
-#	-t prog		Run "prog" on "cvs rtag" of module.
-#	-u prog		Run "prog" on "cvs update" of module.
-#	-d dir		Place module in directory "dir" instead of module name.
-#	-l		Top-level directory only -- do not recurse.
-#
-# NOTE:  If you change any of the "Run" options above, you'll have to
-# release and re-checkout any working directories of these modules.
-#
-# And "directory" is a path to a directory relative to $CVSROOT.
-#
-# The "-a" option specifies an alias.  An alias is interpreted as if
-# everything on the right of the "-a" had been typed on the command line.
-#
-# You can encode a module within a module by using the special '&'
-# character to interpose another module into the current module.  This
-# can be useful for creating a module that consists of many directories
-# spread out over the entire source repository.

DELETED CVSROOT/notify
Index: CVSROOT/notify
==================================================================
--- CVSROOT/notify
+++ /dev/null
@@ -1,12 +0,0 @@
-# The "notify" file controls where notifications from watches set by
-# "cvs watch add" or "cvs edit" are sent.  The first entry on a line is
-# a regular expression which is tested against the directory that the
-# change is being made to, relative to the $CVSROOT.  If it matches,
-# then the remainder of the line is a filter program that should contain
-# one occurrence of %s for the user to notify, and information on its
-# standard input.
-#
-# "ALL" or "DEFAULT" can be used in place of the regular expression.
-#
-# For example:
-#ALL mail %s -s "CVS notification"

DELETED CVSROOT/rcsinfo
Index: CVSROOT/rcsinfo
==================================================================
--- CVSROOT/rcsinfo
+++ /dev/null
@@ -1,13 +0,0 @@
-# The "rcsinfo" file is used to control templates with which the editor
-# is invoked on commit and import.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being made to, relative to the
-# $CVSROOT.  For the first match that is found, then the remainder of the
-# line is the name of the file that contains the template.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".

DELETED CVSROOT/syncmail
Index: CVSROOT/syncmail
==================================================================
--- CVSROOT/syncmail
+++ /dev/null
@@ -1,323 +0,0 @@
-#! /usr/bin/python
-
-# NOTE: Until SourceForge installs a modern version of Python on the cvs
-# servers, this script MUST be compatible with Python 1.5.2.
-
-"""Complicated notification for CVS checkins.
-
-This script is used to provide email notifications of changes to the CVS
-repository.  These email changes will include context diffs of the changes.
-Really big diffs will be trimmed.
-
-This script is run from a CVS loginfo file (see $CVSROOT/CVSROOT/loginfo).  To
-set this up, create a loginfo entry that looks something like this:
-
-    mymodule /path/to/this/script %%s some-email-addr@your.domain
-
-In this example, whenever a checkin that matches `mymodule' is made, this
-script is invoked, which will generate the diff containing email, and send it
-to some-email-addr@your.domain.
-
-    Note: This module used to also do repository synchronizations via
-    rsync-over-ssh, but since the repository has been moved to SourceForge,
-    this is no longer necessary.  The syncing functionality has been ripped
-    out in the 3.0, which simplifies it considerably.  Access the 2.x versions
-    to refer to this functionality.  Because of this, the script is misnamed.
-
-It no longer makes sense to run this script from the command line.  Doing so
-will only print out this usage information.
-
-Usage:
-
-    %(PROGRAM)s [options] <%%S> email-addr [email-addr ...]
-
-Where options are:
-
-    --cvsroot=<path>
-    	Use <path> as the environment variable CVSROOT.  Otherwise this
-    	variable must exist in the environment.
-
-    --context=#
-    -C #
-        Include # lines of context around lines that differ (default: 2).
-
-    -c
-        Produce a context diff (default).
-
-    -u
-        Produce a unified diff (smaller).
-
-    --quiet / -q
-        Don't print as much status to stdout.
-
-    --fromhost=hostname
-    -f hostname
-        The hostname that email messages appear to be coming from.  The From:
-        header will of the outgoing message will look like user@hostname.  By
-        default, hostname is the machine's fully qualified domain name.
-
-    --help / -h
-        Print this text.
-
-The rest of the command line arguments are:
-
-    <%%S>
-        CVS %%s loginfo expansion.  When invoked by CVS, this will be a single
-        string containing the directory the checkin is being made in, relative
-        to $CVSROOT, followed by the list of files that are changing.  If the
-        %%s in the loginfo file is %%{sVv}, context diffs for each of the
-        modified files are included in any email messages that are generated.
-
-    email-addrs
-        At least one email address.
-"""
-import os
-import sys
-import re
-import time
-import string
-import getopt
-import smtplib
-import pwd
-import socket
-
-try:
-    from socket import getfqdn
-except ImportError:
-    def getfqdn():
-        # Python 1.5.2 :(
-        hostname = socket.gethostname()
-        byaddr = socket.gethostbyaddr(socket.gethostbyname(hostname))
-        aliases = byaddr[1]
-        aliases.insert(0, byaddr[0])
-        aliases.insert(0, hostname)
-        for fqdn in aliases:
-            if '.' in fqdn:
-                break
-        else:
-            fqdn = 'localhost.localdomain'
-        return fqdn
-    
-
-from cStringIO import StringIO
-
-# Which SMTP server to do we connect to?  Empty string means localhost.
-MAILHOST = ''
-MAILPORT = 25
-
-# Diff trimming stuff
-DIFF_HEAD_LINES = 20
-DIFF_TAIL_LINES = 20
-DIFF_TRUNCATE_IF_LARGER = 1000
-
-EMPTYSTRING = ''
-SPACE = ' '
-DOT = '.'
-COMMASPACE = ', '
-
-PROGRAM = sys.argv[0]
-
-BINARY_EXPLANATION_LINES = [
-    "(This appears to be a binary file; contents omitted.)\n"
-    ]
-
-REVCRE = re.compile("^(NONE|[0-9.]+)$")
-NOVERSION = "Couldn't generate diff; no version number found in filespec: %s"
-BACKSLASH = "Couldn't generate diff: backslash in filespec's filename: %s"
-
-
-
-def usage(code, msg=''):
-    print __doc__ % globals()
-    if msg:
-        print msg
-    sys.exit(code)
-
-
-
-def calculate_diff(filespec, contextlines):
-    file, oldrev, newrev = string.split(filespec, ',')
-    # Make sure we can find a CVS version number
-    if not REVCRE.match(oldrev):
-        return NOVERSION % filespec
-    if not REVCRE.match(newrev):
-        return NOVERSION % filespec
-
-    if string.find(file, '\\') <> -1:
-        # I'm sorry, a file name that contains a backslash is just too much.
-        # XXX if someone wants to figure out how to escape the backslashes in
-        # a safe way to allow filenames containing backslashes, this is the
-        # place to do it.  --Zooko 2002-03-17
-        return BACKSLASH % filespec
-
-    if string.find(file, "'") <> -1:
-        # Those crazy users put single-quotes in their file names!  Now we
-        # have to escape everything that is meaningful inside double-quotes.
-        filestr = string.replace(file, '`', '\`')
-        filestr = string.replace(filestr, '"', '\"')
-        filestr = string.replace(filestr, '$', '\$')
-        # and quote it with double-quotes.
-        filestr = '"' + filestr + '"'
-    else:
-        # quote it with single-quotes.
-        filestr = "'" + file + "'"
-    if oldrev == 'NONE':
-        try:
-            if os.path.exists(file):
-                fp = open(file)
-            else:
-                update_cmd = "cvs -fn update -r %s -p %s" % (newrev, filestr)
-                fp = os.popen(update_cmd)
-            lines = fp.readlines()
-            fp.close()
-            # Is this a binary file?  Let's look at the first few
-            # lines to figure it out:
-            for line in lines[:5]:
-                for c in string.rstrip(line):
-                    if c in string.whitespace:
-                        continue
-                    if c < ' ' or c > chr(127):
-                        lines = BINARY_EXPLANATION_LINES[:]
-                        break
-            lines.insert(0, '--- NEW FILE: %s ---\n' % file)
-        except IOError, e:
-            lines = ['***** Error reading new file: ',
-                     str(e), '\n***** file: ', file, ' cwd: ', os.getcwd()]
-    elif newrev == 'NONE':
-        lines = ['--- %s DELETED ---\n' % file]
-    else:
-        # This /has/ to happen in the background, otherwise we'll run into CVS
-        # lock contention.  What a crock.
-        if contextlines > 0:
-            difftype = "-C " + str(contextlines)
-        else:
-            difftype = "-u"
-        diffcmd = "/usr/bin/cvs -f diff -kk %s --minimal -r %s -r %s %s" \
-                  % (difftype, oldrev, newrev, filestr)
-        fp = os.popen(diffcmd)
-        lines = fp.readlines()
-        sts = fp.close()
-        # ignore the error code, it always seems to be 1 :(
-##        if sts:
-##            return 'Error code %d occurred during diff\n' % (sts >> 8)
-    if len(lines) > DIFF_TRUNCATE_IF_LARGER:
-        removedlines = len(lines) - DIFF_HEAD_LINES - DIFF_TAIL_LINES
-        del lines[DIFF_HEAD_LINES:-DIFF_TAIL_LINES]
-        lines.insert(DIFF_HEAD_LINES,
-                     '[...%d lines suppressed...]\n' % removedlines)
-    return string.join(lines, '')
-
-
-
-def blast_mail(subject, people, filestodiff, contextlines, fromhost):
-    # cannot wait for child process or that will cause parent to retain cvs
-    # lock for too long.  Urg!
-    if not os.fork():
-        # in the child
-        # give up the lock you cvs thang!
-        time.sleep(2)
-        # Create the smtp connection to the localhost
-        conn = smtplib.SMTP()
-        conn.connect(MAILHOST, MAILPORT)
-        user = pwd.getpwuid(os.getuid())[0]
-        domain = fromhost or getfqdn()
-        author = '%s@%s' % (user, domain)
-        s = StringIO()
-        sys.stdout = s
-        try:
-            print '''\
-From: %(author)s
-To: %(people)s
-Subject: %(subject)s
-''' % {'author' : author,
-       'people' : string.join(people, COMMASPACE),
-       'subject': subject,
-       }
-            s.write(sys.stdin.read())
-            # append the diffs if available
-            print
-            for file in filestodiff:
-                print calculate_diff(file, contextlines)
-        finally:
-            sys.stdout = sys.__stdout__
-        resp = conn.sendmail(author, people, s.getvalue())
-        conn.close()
-        os._exit(0)
-
-
-
-# scan args for options
-def main():
-    try:
-        opts, args = getopt.getopt(
-            sys.argv[1:], 'hC:cuqf:',
-            ['fromhost=', 'context=', 'cvsroot=', 'help', 'quiet'])
-    except getopt.error, msg:
-        usage(1, msg)
-
-    # parse the options
-    contextlines = 2
-    verbose = 1
-    fromhost = None
-    for opt, arg in opts:
-        if opt in ('-h', '--help'):
-            usage(0)
-        elif opt == '--cvsroot':
-            os.environ['CVSROOT'] = arg
-        elif opt in ('-C', '--context'):
-            contextlines = int(arg)
-        elif opt == '-c':
-            if contextlines <= 0:
-                contextlines = 2
-        elif opt == '-u':
-            contextlines = 0
-        elif opt in ('-q', '--quiet'):
-            verbose = 0
-        elif opt in ('-f', '--fromhost'):
-            fromhost = arg
-
-    # What follows is the specification containing the files that were
-    # modified.  The argument actually must be split, with the first component
-    # containing the directory the checkin is being made in, relative to
-    # $CVSROOT, followed by the list of files that are changing.
-    if not args:
-        usage(1, 'No CVS module specified')
-    subject = args[0]
-    specs = string.split(args[0])
-    del args[0]
-
-    # The remaining args should be the email addresses
-    if not args:
-        usage(1, 'No recipients specified')
-
-    # Now do the mail command
-    people = args
-
-    if verbose:
-        print 'Mailing %s...' % string.join(people, COMMASPACE)
-
-    if specs == ['-', 'Imported', 'sources']:
-        return
-    if specs[-3:] == ['-', 'New', 'directory']:
-        del specs[-3:]
-    elif len(specs) > 2:
-        L = specs[:2]
-        for s in specs[2:]:
-            prev = L[-1]
-            if string.count(prev, ',') < 2:
-                L[-1] = "%s %s" % (prev, s)
-            else:
-                L.append(s)
-        specs = L
-
-    if verbose:
-        print 'Generating notification message...'
-    blast_mail(subject, people, specs[1:], contextlines, fromhost)
-    if verbose:
-        print 'Generating notification message... done.'
-
-
-
-if __name__ == '__main__':
-    main()
-    sys.exit(0)

DELETED CVSROOT/taginfo
Index: CVSROOT/taginfo
==================================================================
--- CVSROOT/taginfo
+++ /dev/null
@@ -1,20 +0,0 @@
-# The "taginfo" file is used to control pre-tag checks.
-# The filter on the right is invoked with the following arguments:
-#
-# $1 -- tagname
-# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
-# $3 -- repository
-# $4->  file revision [file revision ...]
-#
-# A non-zero exit of the filter program will cause the tag to be aborted.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being committed to, relative
-# to the $CVSROOT.  For the first match that is found, then the remainder
-# of the line is the name of the filter to run.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".

DELETED CVSROOT/verifymsg
Index: CVSROOT/verifymsg
==================================================================
--- CVSROOT/verifymsg
+++ /dev/null
@@ -1,21 +0,0 @@
-# The "verifymsg" file is used to allow verification of logging
-# information.  It works best when a template (as specified in the
-# rcsinfo file) is provided for the logging procedure.  Given a
-# template with locations for, a bug-id number, a list of people who
-# reviewed the code before it can be checked in, and an external
-# process to catalog the differences that were code reviewed, the
-# following test can be applied to the code:
-#
-#   Making sure that the entered bug-id number is correct.
-#   Validating that the code that was reviewed is indeed the code being
-#       checked in (using the bug-id number or a seperate review
-#       number to identify this particular code set.).
-#
-# If any of the above test failed, then the commit would be aborted.
-#
-# Actions such as mailing a copy of the report to each reviewer are
-# better handled by an entry in the loginfo file.
-#
-# One thing that should be noted is the the ALL keyword is not
-# supported.  There can be only one entry that matches a given
-# repository.

DELETED mttroot/CVSROOT/checkoutlist
Index: mttroot/CVSROOT/checkoutlist
==================================================================
--- mttroot/CVSROOT/checkoutlist
+++ /dev/null
@@ -1,14 +0,0 @@
-# The "checkoutlist" file is used to support additional version controlled
-# administrative files in $CVSROOT/CVSROOT, such as template files.
-#
-# The first entry on a line is a filename which will be checked out from
-# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
-# The remainder of the line is an error message to use if the file cannot
-# be checked out.
-#
-# File format:
-#
-#	[<whitespace>]<filename><whitespace><error message><end-of-line>
-#
-# comment lines begin with '#'
-syncmail

DELETED mttroot/CVSROOT/commitinfo
Index: mttroot/CVSROOT/commitinfo
==================================================================
--- mttroot/CVSROOT/commitinfo
+++ /dev/null
@@ -1,15 +0,0 @@
-# The "commitinfo" file is used to control pre-commit checks.
-# The filter on the right is invoked with the repository and a list 
-# of files to check.  A non-zero exit of the filter program will 
-# cause the commit to be aborted.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being committed to, relative
-# to the $CVSROOT.  For the first match that is found, then the remainder
-# of the line is the name of the filter to run.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".

DELETED mttroot/CVSROOT/config
Index: mttroot/CVSROOT/config
==================================================================
--- mttroot/CVSROOT/config
+++ /dev/null
@@ -1,11 +0,0 @@
-# Set this to "no" if pserver shouldn't check system users/passwords
-#SystemAuth=no
-
-# Set `PreservePermissions' to `yes' to save file status information
-# in the repository.
-#PreservePermissions=no
-
-# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
-# level of the new working directory when using the `cvs checkout'
-# command.
-#TopLevelAdmin=no

DELETED mttroot/CVSROOT/cvswrappers
Index: mttroot/CVSROOT/cvswrappers
==================================================================
--- mttroot/CVSROOT/cvswrappers
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file affects handling of files based on their names.
-#
-# The -t/-f options allow one to treat directories of files
-# as a single file, or to transform a file in other ways on
-# its way in and out of CVS.
-#
-# The -m option specifies whether CVS attempts to merge files.
-#
-# The -k option specifies keyword expansion (e.g. -kb for binary).
-#
-# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
-#
-#  wildcard	[option value][option value]...
-#
-#  where option is one of
-#  -f		from cvs filter		value: path to filter
-#  -t		to cvs filter		value: path to filter
-#  -m		update methodology	value: MERGE or COPY
-#  -k		expansion mode		value: b, o, kkv, &c
-#
-#  and value is a single-quote delimited value.
-# For example:
-#*.gif -k 'b'

DELETED mttroot/CVSROOT/editinfo
Index: mttroot/CVSROOT/editinfo
==================================================================
--- mttroot/CVSROOT/editinfo
+++ /dev/null
@@ -1,21 +0,0 @@
-# The "editinfo" file is used to allow verification of logging
-# information.  It works best when a template (as specified in the
-# rcsinfo file) is provided for the logging procedure.  Given a
-# template with locations for, a bug-id number, a list of people who
-# reviewed the code before it can be checked in, and an external
-# process to catalog the differences that were code reviewed, the
-# following test can be applied to the code:
-#
-#   Making sure that the entered bug-id number is correct.
-#   Validating that the code that was reviewed is indeed the code being
-#       checked in (using the bug-id number or a seperate review
-#       number to identify this particular code set.).
-#
-# If any of the above test failed, then the commit would be aborted.
-#
-# Actions such as mailing a copy of the report to each reviewer are
-# better handled by an entry in the loginfo file.
-#
-# One thing that should be noted is the the ALL keyword is not
-# supported.  There can be only one entry that matches a given
-# repository.

DELETED mttroot/CVSROOT/loginfo
Index: mttroot/CVSROOT/loginfo
==================================================================
--- mttroot/CVSROOT/loginfo
+++ /dev/null
@@ -1,31 +0,0 @@
-# The "loginfo" file controls where "cvs commit" log information
-# is sent.  The first entry on a line is a regular expression which must match
-# the directory that the change is being made to, relative to the
-# $CVSROOT.  If a match is found, then the remainder of the line is a filter
-# program that should expect log information on its standard input.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name ALL appears as a regular expression it is always used
-# in addition to the first matching regex or DEFAULT.
-#
-# You may specify a format string as part of the
-# filter.  The string is composed of a `%' followed
-# by a single format character, or followed by a set of format
-# characters surrounded by `{' and `}' as separators.  The format
-# characters are:
-#
-#   s = file name
-#   V = old version number (pre-checkin)
-#   v = new version number (post-checkin)
-#
-# For example:
-#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
-# or
-#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
-
-# Lines to mail changes
-CVSROOT $CVSROOT/CVSROOT/syncmail %{sVv} mtt@gawthrop.net
-DEFAULT $CVSROOT/CVSROOT/syncmail %{sVv} mtt-cvs@lists.sourceforge.net
-

DELETED mttroot/CVSROOT/modules
Index: mttroot/CVSROOT/modules
==================================================================
--- mttroot/CVSROOT/modules
+++ /dev/null
@@ -1,26 +0,0 @@
-# Three different line formats are valid:
-#	key	-a    aliases...
-#	key [options] directory
-#	key [options] directory files...
-#
-# Where "options" are composed of:
-#	-i prog		Run "prog" on "cvs commit" from top-level of module.
-#	-o prog		Run "prog" on "cvs checkout" of module.
-#	-e prog		Run "prog" on "cvs export" of module.
-#	-t prog		Run "prog" on "cvs rtag" of module.
-#	-u prog		Run "prog" on "cvs update" of module.
-#	-d dir		Place module in directory "dir" instead of module name.
-#	-l		Top-level directory only -- do not recurse.
-#
-# NOTE:  If you change any of the "Run" options above, you'll have to
-# release and re-checkout any working directories of these modules.
-#
-# And "directory" is a path to a directory relative to $CVSROOT.
-#
-# The "-a" option specifies an alias.  An alias is interpreted as if
-# everything on the right of the "-a" had been typed on the command line.
-#
-# You can encode a module within a module by using the special '&'
-# character to interpose another module into the current module.  This
-# can be useful for creating a module that consists of many directories
-# spread out over the entire source repository.

DELETED mttroot/CVSROOT/notify
Index: mttroot/CVSROOT/notify
==================================================================
--- mttroot/CVSROOT/notify
+++ /dev/null
@@ -1,12 +0,0 @@
-# The "notify" file controls where notifications from watches set by
-# "cvs watch add" or "cvs edit" are sent.  The first entry on a line is
-# a regular expression which is tested against the directory that the
-# change is being made to, relative to the $CVSROOT.  If it matches,
-# then the remainder of the line is a filter program that should contain
-# one occurrence of %s for the user to notify, and information on its
-# standard input.
-#
-# "ALL" or "DEFAULT" can be used in place of the regular expression.
-#
-# For example:
-#ALL mail %s -s "CVS notification"

DELETED mttroot/CVSROOT/rcsinfo
Index: mttroot/CVSROOT/rcsinfo
==================================================================
--- mttroot/CVSROOT/rcsinfo
+++ /dev/null
@@ -1,13 +0,0 @@
-# The "rcsinfo" file is used to control templates with which the editor
-# is invoked on commit and import.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being made to, relative to the
-# $CVSROOT.  For the first match that is found, then the remainder of the
-# line is the name of the file that contains the template.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".

DELETED mttroot/CVSROOT/syncmail
Index: mttroot/CVSROOT/syncmail
==================================================================
--- mttroot/CVSROOT/syncmail
+++ /dev/null
@@ -1,287 +0,0 @@
-#! /usr/bin/python
-
-# NOTE: Until SourceForge installs a modern version of Python on the cvs
-# servers, this script MUST be compatible with Python 1.5.2.
-
-"""Complicated notification for CVS checkins.
-
-This script is used to provide email notifications of changes to the CVS
-repository.  These email changes will include context diffs of the changes.
-Really big diffs will be trimmed.
-
-This script is run from a CVS loginfo file (see $CVSROOT/CVSROOT/loginfo).  To
-set this up, create a loginfo entry that looks something like this:
-
-    mymodule /path/to/this/script %%s some-email-addr@your.domain
-
-In this example, whenever a checkin that matches `mymodule' is made, this
-script is invoked, which will generate the diff containing email, and send it
-to some-email-addr@your.domain.
-
-    Note: This module used to also do repository synchronizations via
-    rsync-over-ssh, but since the repository has been moved to SourceForge,
-    this is no longer necessary.  The syncing functionality has been ripped
-    out in the 3.0, which simplifies it considerably.  Access the 2.x versions
-    to refer to this functionality.  Because of this, the script is misnamed.
-
-It no longer makes sense to run this script from the command line.  Doing so
-will only print out this usage information.
-
-Usage:
-
-    %(PROGRAM)s [options] <%%S> email-addr [email-addr ...]
-
-Where options is:
-
-    --cvsroot=<path>
-    	Use <path> as the environment variable CVSROOT.  Otherwise this
-    	variable must exist in the environment.
-
-    --help / -h
-        Print this text.
-
-    --context=#
-    -C #
-        Include # lines of context around lines that differ (default: 2).
-
-    -c
-        Produce a context diff (default).
-
-    -u
-        Produce a unified diff (smaller).
-
-    --quiet/-q
-        Don't print as much status to stdout.
-
-    <%%S>
-        CVS %%s loginfo expansion.  When invoked by CVS, this will be a single
-        string containing the directory the checkin is being made in, relative
-        to $CVSROOT, followed by the list of files that are changing.  If the
-        %%s in the loginfo file is %%{sVv}, context diffs for each of the
-        modified files are included in any email messages that are generated.
-
-    email-addrs
-        At least one email address.
-"""
-import os
-import sys
-import time
-import string
-import getopt
-import smtplib
-import pwd
-import socket
-
-from cStringIO import StringIO
-
-# Which SMTP server to do we connect to?  Empty string means localhost.
-MAILHOST = ''
-MAILPORT = 25
-
-# Diff trimming stuff
-DIFF_HEAD_LINES = 20
-DIFF_TAIL_LINES = 20
-DIFF_TRUNCATE_IF_LARGER = 1000
-
-EMPTYSTRING = ''
-SPACE = ' '
-DOT = '.'
-COMMASPACE = ', '
-
-PROGRAM = sys.argv[0]
-
-BINARY_EXPLANATION_LINES = [
-    "(This appears to be a binary file; contents omitted.)\n"
-    ]
-
-
-def usage(code, msg=''):
-    print __doc__ % globals()
-    if msg:
-        print msg
-    sys.exit(code)
-
-
-
-def calculate_diff(filespec, contextlines):
-    try:
-        file, oldrev, newrev = string.split(filespec, ',')
-    except ValueError:
-        # No diff to report
-        return '***** Bogus filespec: %s' % filespec
-    if oldrev == 'NONE':
-        try:
-            if os.path.exists(file):
-                fp = open(file)
-            else:
-                update_cmd = 'cvs -fn update -r %s -p %s' % (newrev, file)
-                fp = os.popen(update_cmd)
-            lines = fp.readlines()
-            fp.close()
-            # Is this a binary file?  Let's look at the first few
-            # lines to figure it out:
-            for line in lines[:5]:
-                for c in string.rstrip(line):
-                    if c in string.whitespace:
-                        continue
-                    if c < ' ' or c > chr(127):
-                        lines = BINARY_EXPLANATION_LINES[:]
-                        break
-            lines.insert(0, '--- NEW FILE: %s ---\n' % file)
-        except IOError, e:
-            lines = ['***** Error reading new file: ',
-                     str(e), '\n***** file: ', file, ' cwd: ', os.getcwd()]
-    elif newrev == 'NONE':
-        lines = ['--- %s DELETED ---\n' % file]
-    else:
-        # This /has/ to happen in the background, otherwise we'll run into CVS
-        # lock contention.  What a crock.
-        if contextlines > 0:
-            difftype = "-C " + str(contextlines)
-        else:
-            difftype = "-u"
-        diffcmd = "/usr/bin/cvs -f diff -kk %s --minimal -r %s -r %s '%s'" % (
-            difftype, oldrev, newrev, file)
-        fp = os.popen(diffcmd)
-        lines = fp.readlines()
-        sts = fp.close()
-        # ignore the error code, it always seems to be 1 :(
-##        if sts:
-##            return 'Error code %d occurred during diff\n' % (sts >> 8)
-    if len(lines) > DIFF_TRUNCATE_IF_LARGER:
-        removedlines = len(lines) - DIFF_HEAD_LINES - DIFF_TAIL_LINES
-        del lines[DIFF_HEAD_LINES:-DIFF_TAIL_LINES]
-        lines.insert(DIFF_HEAD_LINES,
-                     '[...%d lines suppressed...]\n' % removedlines)
-    return string.join(lines, '')
-
-
-
-def getdomain():
-    try:
-        fqdn = socket.getfqdn()
-    except AttributeError:
-        # Python 1.5.2 :(
-        hostname = socket.gethostname()
-        byaddr = socket.gethostbyaddr(socket.gethostbyname(hostname))
-        aliases = byaddr[1]
-        aliases.insert(0, byaddr[0])
-        aliases.insert(0, hostname)
-        for fqdn in aliases:
-            if '.' in fqdn:
-                break
-        else:
-            fqdn = 'localhost.localdomain'
-    parts = string.split(fqdn, DOT)
-    return string.join(parts[1:], DOT)
-
-
-
-def blast_mail(subject, people, filestodiff, contextlines):
-    # cannot wait for child process or that will cause parent to retain cvs
-    # lock for too long.  Urg!
-    if not os.fork():
-        # in the child
-        # give up the lock you cvs thang!
-        time.sleep(2)
-        # Create the smtp connection to the localhost
-        conn = smtplib.SMTP()
-        conn.connect(MAILHOST, MAILPORT)
-        user = pwd.getpwuid(os.getuid())[0]
-        domain = getdomain()
-        author = '%s@%s' % (user, domain)
-        s = StringIO()
-        sys.stdout = s
-        try:
-            print '''\
-From: %(author)s
-To: %(people)s
-Subject: %(subject)s
-''' % {'author' : author,
-       'people' : string.join(people, COMMASPACE),
-       'subject': subject,
-       }
-            s.write(sys.stdin.read())
-            # append the diffs if available
-            print
-            for file in filestodiff:
-                print calculate_diff(file, contextlines)
-        finally:
-            sys.stdout = sys.__stdout__
-        resp = conn.sendmail(author, people, s.getvalue())
-        conn.close()
-        os._exit(0)
-
-
-
-# scan args for options
-def main():
-    try:
-        opts, args = getopt.getopt(sys.argv[1:], 'hC:cuq',
-                                   ['context=', 'cvsroot=', 'help', 'quiet'])
-    except getopt.error, msg:
-        usage(1, msg)
-
-    # parse the options
-    contextlines = 2
-    verbose = 1
-    for opt, arg in opts:
-        if opt in ('-h', '--help'):
-            usage(0)
-        elif opt == '--cvsroot':
-            os.environ['CVSROOT'] = arg
-        elif opt in ('-C', '--context'):
-            contextlines = int(arg)
-        elif opt == '-c':
-            if contextlines <= 0:
-                contextlines = 2
-        elif opt == '-u':
-            contextlines = 0
-        elif opt in ('-q', '--quiet'):
-            verbose = 0
-
-    # What follows is the specification containing the files that were
-    # modified.  The argument actually must be split, with the first component
-    # containing the directory the checkin is being made in, relative to
-    # $CVSROOT, followed by the list of files that are changing.
-    if not args:
-        usage(1, 'No CVS module specified')
-    subject = args[0]
-    specs = string.split(args[0])
-    del args[0]
-
-    # The remaining args should be the email addresses
-    if not args:
-        usage(1, 'No recipients specified')
-
-    # Now do the mail command
-    people = args
-
-    if verbose:
-        print 'Mailing %s...' % string.join(people, COMMASPACE)
-
-    if specs == ['-', 'Imported', 'sources']:
-        return
-    if specs[-3:] == ['-', 'New', 'directory']:
-        del specs[-3:]
-    elif len(specs) > 2:
-        L = specs[:2]
-        for s in specs[2:]:
-            prev = L[-1]
-            if string.count(prev, ',') < 2:
-                L[-1] = "%s %s" % (prev, s)
-            else:
-                L.append(s)
-        specs = L
-
-    if verbose:
-        print 'Generating notification message...'
-    blast_mail(subject, people, specs[1:], contextlines)
-    if verbose:
-        print 'Generating notification message... done.'
-
-
-
-if __name__ == '__main__':
-    main()
-    sys.exit(0)

DELETED mttroot/CVSROOT/taginfo
Index: mttroot/CVSROOT/taginfo
==================================================================
--- mttroot/CVSROOT/taginfo
+++ /dev/null
@@ -1,20 +0,0 @@
-# The "taginfo" file is used to control pre-tag checks.
-# The filter on the right is invoked with the following arguments:
-#
-# $1 -- tagname
-# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
-# $3 -- repository
-# $4->  file revision [file revision ...]
-#
-# A non-zero exit of the filter program will cause the tag to be aborted.
-#
-# The first entry on a line is a regular expression which is tested
-# against the directory that the change is being committed to, relative
-# to the $CVSROOT.  For the first match that is found, then the remainder
-# of the line is the name of the filter to run.
-#
-# If the repository name does not match any of the regular expressions in this
-# file, the "DEFAULT" line is used, if it is specified.
-#
-# If the name "ALL" appears as a regular expression it is always used
-# in addition to the first matching regex or "DEFAULT".

DELETED mttroot/CVSROOT/verifymsg
Index: mttroot/CVSROOT/verifymsg
==================================================================
--- mttroot/CVSROOT/verifymsg
+++ /dev/null
@@ -1,21 +0,0 @@
-# The "verifymsg" file is used to allow verification of logging
-# information.  It works best when a template (as specified in the
-# rcsinfo file) is provided for the logging procedure.  Given a
-# template with locations for, a bug-id number, a list of people who
-# reviewed the code before it can be checked in, and an external
-# process to catalog the differences that were code reviewed, the
-# following test can be applied to the code:
-#
-#   Making sure that the entered bug-id number is correct.
-#   Validating that the code that was reviewed is indeed the code being
-#       checked in (using the bug-id number or a seperate review
-#       number to identify this particular code set.).
-#
-# If any of the above test failed, then the commit would be aborted.
-#
-# Actions such as mailing a copy of the report to each reviewer are
-# better handled by an entry in the loginfo file.
-#
-# One thing that should be noted is the the ALL keyword is not
-# supported.  There can be only one entry that matches a given
-# repository.

Index: mttroot/mtt/bin/mtt
==================================================================
--- mttroot/mtt/bin/mtt
+++ mttroot/mtt/bin/mtt
@@ -15,10 +15,16 @@
 ###############################################################
 ## Version control history
 ###############################################################
 ## $Header$
 ## $Log$
+## Revision 1.360.2.1  2002/09/03 23:44:43  geraint
+## adding global optimisation (-optg).
+##
+## Revision 1.360  2002/08/20 15:51:16  gawthrop
+## Update to work with ident DIY rep
+##
 ## Revision 1.359  2002/08/07 14:27:14  geraint
 ## Changes to make "-i dassl" work again.
 ##
 ## Revision 1.358  2002/08/07 11:04:40  geraint
 ## Now updates timestamp on lbl.txt after processing in make. This eliminates the delay where MTT spends a long period of time uselessly recursing through the model on subsequent passes if the label file is older than the bondgraph.
@@ -1305,10 +1311,13 @@
 
 # Default use ps files
 ps=ps
 eps=eps
 psview=$PSVIEW
+
+# Default declare 500 temporary variables
+num_tmp_var=500
 
 #Initialise list of switches
 mtt_switches='';
 
 #Initialise read dirs
@@ -1459,12 +1468,20 @@
 	-oct )
                 fixcc='-fixcc'
                 mtt_switches="$mtt_switches $1";
                 using_oct=yes;
                 ;;
-	-opt )  mtt_switches="$mtt_switches $1";
-                optimise='-optimise';;
+	-opt | -optl )
+		mtt_switches="$mtt_switches $1";
+                optimise='-optimise_local';;
+	-optg )
+		mtt_switches="$mtt_switches $1";
+                optimise='-optimise_global';;
+        -ntmpvar )
+		num_tmp_var=$2;
+		mtt_switches="$mtt_switches $1 $2";
+		shift;;
 	-partition ) mtt_switches="$mtt_switches $1";
                      partition='-partition';
                 ;;
 	-pdf )   mtt_switches="$mtt_switches $1";
                  ps=pdf; 
@@ -1553,11 +1570,14 @@
     echo '         -dc Maximise derivative (not integral) causality'
     echo '         -i <implicit|euler|rk4|dassl>   Use implicit, euler, rk4 or dassl integration'
     echo '         -ae <reduce|hybrd|dassl|hooke>   Solve algebraic equations with specified solver'
     echo '         -o ode is same as dae'
     echo '         -oct use oct files in place of m files where appropriate'
-    echo '         -opt optimise code generation'
+    echo '         -opt optimise code generation (equivalent to -lopt)'
+    echo '         -optl optimise code generation (local  : line-by-line)'
+    echo '         -optg optimise code generation (global : full vector)'
+    echo "         -ntmpvar <N>  declare N temporary variables (default=$num_tmp_var)"
     echo '         -p  print environment variables'
     echo '         -partition partition hierachical system'
     echo '         -pdf generate pdf in place of ps'
     echo '         -r  reset time stamp on representation'
     echo '         -s  generate sensitivity BG (use mtt -s sSys rep lang)'
@@ -2403,11 +2423,11 @@
 $1_sympar.r: $1_sympar.txt
 	sympar_txt2r $1
 $1_sympar.m: $1_sympar.txt
 	sympar_txt2m $1
 $1_sympar.h: $1_sympar.txt
-	sympar_txt2h.sh $1
+	sympar_txt2h.sh $1 $num_tmp_var
 
 #SUMMARY sympar	symbolic parameters (c)
 # txt to c sympar conversion
 $1_sympar.c: $1_sympar.txt
 	sympar_txt2c $1

Index: mttroot/mtt/bin/trans/cse2ode_r
==================================================================
--- mttroot/mtt/bin/trans/cse2ode_r
+++ mttroot/mtt/bin/trans/cse2ode_r
@@ -12,10 +12,16 @@
 ###############################################################
 ## Version control history
 ###############################################################
 ## $Id$
 ## $Log$
+## Revision 1.3.4.1  2002/09/03 23:44:43  geraint
+## adding global optimisation (-optg).
+##
+## Revision 1.3  2001/07/27 23:29:10  geraint
+## Optimises only when requested (-opt).
+##
 ## Revision 1.2  2001/07/13 04:54:04  geraint
 ## Branch merge: numerical-algebraic-solution back to main.
 ##
 ## Revision 1.1.4.1  2001/05/04 04:07:24  geraint
 ## Numerical solution of algebraic equations.
@@ -34,22 +40,25 @@
 ###############################################################
 
 optimise=''; optimise_msg=''
 while [ -n "`echo $1 | grep '^-'`" ]; do
     case $1 in
-	-optimise)
-	    optimise='-optimise'
-	    optimise_msg=' with optimisation' ;;
+	-optimise_global )
+	    optimise='-optimise_global'
+	    optimise_msg=' with global optimisation' ;;
+	-optimise_local )
+	    optimise='-optimise_local'
+	    optimise_msg=' with local optimisation' ;;
 	*)
 	    echo "$1 is an invalid argument - ignoring" ;;
     esac
     shift
 done
 
 # Create the reduce output code
-def2write_r $optimise $1 ode
-def2write_r $optimise $1 odeo
+def2write_r $1 ode
+def2write_r $1 odeo
 
 #Inform user
 echo Creating $1_ode.r $optimise_msg
 echo Creating $1_odeo.r $optimise_msg
 
@@ -126,16 +135,16 @@
 in ("$1_odeo_write.r");
 write "END;";
 SHUT "$1_odeo.r";
 quit;
 EOF
+
+if [ ${optimise:-""} = "-optimise_global" ]; then
+    mtt_optimise global $1 ode
+    mtt_optimise global $1 odeo
+elif [ ${optimise:-""} = "-optimise_local" ]; then
+    mtt_optimise local $1 ode
+    mtt_optimise local $1 odeo
+fi
 
 # Now invoke the standard error handling.
 mtt_error_r cse2ode_r.log
-
-
-
-
-
-
-
-

Index: mttroot/mtt/bin/trans/cse2smx_lang
==================================================================
--- mttroot/mtt/bin/trans/cse2smx_lang
+++ mttroot/mtt/bin/trans/cse2smx_lang
@@ -23,11 +23,11 @@
 	parameters='-parameters';
 	;;
     -matrix)
 	matrix='yes';
 	;;
-    -optimise)
+    -optimise_global | -optimise_local )
 	optimise='LOAD SCOPE; ON GENTRANOPT;';
         iname='INAME mtt_o;';
 	;;
     -fixcc )
         fix_mtt_pow='FOR ALL x,y LET x^y = mtt_pow(x,y);'

Index: mttroot/mtt/bin/trans/csm2sm_r
==================================================================
--- mttroot/mtt/bin/trans/csm2sm_r
+++ mttroot/mtt/bin/trans/csm2sm_r
@@ -12,10 +12,16 @@
 ###############################################################
 ## Version control history
 ###############################################################
 ## $Id$
 ## $Log$
+## Revision 1.2.4.1  2002/09/03 23:44:43  geraint
+## adding global optimisation (-optg).
+##
+## Revision 1.2  2001/07/27 23:29:10  geraint
+## Optimises only when requested (-opt).
+##
 ## Revision 1.1  2000/12/28 12:24:03  peterg
 ## Put under RCS
 ##
 ## Revision 1.2  1996/08/25 10:11:32  peter
 ## Added END in output file.
@@ -27,21 +33,24 @@
 ###############################################################
 
 optimise=''; optimise_msg=''
 while [ -n "`echo $1 | grep '^-'`" ]; do
     case $1 in
-	-optimise)
-	    optimise='-optimise'
-	    optimise_msg=' with optimisation' ;;
-	*)
+	-optimise_global )
+	    optimise='-optimise_global'
+	    optimise_msg=' with global optimisation' ;;
+       	-optimise_local )
+	    optimise='-optimise_local'
+	    optimise_msg=' with local optimisation' ;;
+	* )
 	    echo "$1 is an invalid argument - ignoring" ;;
     esac
     shift
 done
 
 # Create the reduce output code
-def2write_r $optimise $1 $2
+def2write_r $1 $2
 
 # Inform user
 echo Creating $1_$2.r $optimise_msg
 
 case $2 in
@@ -135,8 +144,14 @@
 quit;
 
 EOF
 
 cat $1_$2.r1 $1_$2.r2 > $1_$2.r
+
+if [ ${optimise:-""} = "-optimise_global" ]; then
+    mtt_optimise global $1 $2
+elif [ ${optimise:-""} = "-optimise_local" ]; then
+    mtt_optimise local $1 $2
+fi
 
 # Now invoke the standard error handling.
 mtt_error_r csm2sm_r.log

Index: mttroot/mtt/bin/trans/dae2cse_r
==================================================================
--- mttroot/mtt/bin/trans/dae2cse_r
+++ mttroot/mtt/bin/trans/dae2cse_r
@@ -13,10 +13,21 @@
 ###############################################################
 ## Version control history
 ###############################################################
 ## $Id$
 ## $Log$
+## Revision 1.23.2.2  2002/09/10 23:24:19  geraint
+## Rationalised local and global optimisations.
+## Fixes presentation of locally optimised code (ode view).
+## Much more elegant :-)
+##
+## Revision 1.23.2.1  2002/09/03 23:44:43  geraint
+## adding global optimisation (-optg).
+##
+## Revision 1.23  2002/07/10 17:43:05  geraint
+## Added feature [ 562453 ] Optimisation of algebraic equations.
+##
 ## Revision 1.22  2002/06/28 15:35:47  geraint
 ## Commented out aej.r generation (not used yet).
 ##
 ## Revision 1.21  2002/06/28 10:13:40  geraint
 ## Includes fix_c.r in ese2rdae and def2write_r to eliminate occurrances of x**y.
@@ -132,24 +143,27 @@
 	-fixcc )
 		fixcc='-fixcc'
                 include=`echo 'in "'$MTT_LIB'/reduce/fix_c.r";'`
                 fix_msg='fixing c and cc code';
 		;;
-	-optimise)
-	    optimise='-optimise'
-	    optimise_msg=' with optimisation' ;;
+        -optimise_global )
+	    optimise='-optimise_global'
+	    optimise_msg=' with global optimisation' ;;
+	-optimise_local )
+	    optimise='-optimise_local'
+	    optimise_msg=' with local optimisation' ;;
         *)
                 echo "$1 is an invalid argument - ignoring" ;;
   esac
   shift
 done
 
 # Create the reduce output code
-def2write_r $optimise $fixcc $1 ae 
-def2write_r $optimise $fixcc $1 cse 
-def2write_r $optimise $fixcc $1 csex # Version without E matrix
-def2write_r $optimise $fixcc $1 cseo
+def2write_r $fixcc $1 ae 
+def2write_r $fixcc $1 cse 
+def2write_r $fixcc $1 csex # Version without E matrix
+def2write_r $fixcc $1 cseo
 
 echo "Creating $1_ae.r $optimise_msg"
 echo "Creating $1_cse.r $solve_msg $optimise_msg $fix_msg"
 echo "Creating $1_csex.r $optimise_msg"
 echo "Creating $1_cseo.r $optimise_msg"
@@ -470,10 +484,22 @@
 touch $1_cseo.r2
 cat $1_ae.r1 $1_ae.r2 > $1_ae.r
 cat $1_cse.r1 $1_cse.r2  > $1_cse.r
 cat $1_csex.r1 $1_csex.r2  > $1_csex.r
 cat $1_cseo.r1 $1_cseo.r2  > $1_cseo.r
+
+if [ ${optimise:-""} = "-optimise_global" ]; then
+    mtt_optimise global $1 ae
+    mtt_optimise global $1 cse
+    mtt_optimise global $1 cseo
+    mtt_optimise global $1 csex
+elif [ ${optimise:-""} = "-optimise_local" ]; then
+    mtt_optimise local $1 ae
+    mtt_optimise local $1 cse
+    mtt_optimise local $1 cseo
+    mtt_optimise local $1 csex
+fi
 
 if [ "$solve" = "1" ]; then
     echo "Setting MTTNyz=0 in $1_def.r and updating other $1_def files"
     gawk '{
      if ($1=="MTTNyz") 

Index: mttroot/mtt/bin/trans/dae2lde_r
==================================================================
--- mttroot/mtt/bin/trans/dae2lde_r
+++ mttroot/mtt/bin/trans/dae2lde_r
@@ -11,30 +11,39 @@
 ###############################################################
 ## Version control history
 ###############################################################
 ## $Id$
 ## $Log$
+## Revision 1.2.4.1  2002/09/03 23:44:43  geraint
+## adding global optimisation (-optg).
+##
+## Revision 1.2  2001/07/27 23:29:10  geraint
+## Optimises only when requested (-opt).
+##
 ## Revision 1.1  2000/12/28 12:25:13  peterg
 ## Initial revision
 ##
 ###############################################################
 
 optimise=''; optimise_msg=''
 while [ -n "`echo $1 | grep '^-'`" ]; do
     case $1 in
-	-optimise)
-	    optimise='-optimise'
-	    optimise_msg=' with optimisation' ;;
+	-optimise_global )
+	    optimise='-optimise_global'
+	    optimise_msg=' with global optimisation' ;;
+	-optimise_local )
+	    optimise='-optimise_local'
+	    optimise_msg=' with local optimisation' ;;
 	*)
 	    echo "$1 is an invalid argument - ignoring" ;;
     esac
     shift
 done
 
 # Create the reduce output code
-def2write_r $optimise $1 lde
-def2write_r $optimise $1 ldeo
+def2write_r $1 lde
+def2write_r $1 ldeo
 
 #Inform user
 echo Creating $1_lde.r $optimise_msg
 echo Creating $1_ldeo.r $optimise_msg
 
@@ -116,10 +125,18 @@
 in ("$1_ldeo_write.r");
 write "END;";
 SHUT "$1_ldeo.r";
 quit;
 EOF
+
+if [ ${optimise:-""} = "-optimise_global" ]; then
+# TODO:    mtt_optimise global $1 lde
+# TODO:    mtt_optimise global $1 ldeo
+elif [ ${optimise:-""} = "-optimise_local" ]; then
+# TODO:    mtt_optimise local $1 lde
+# TODO:    mtt_optimise local $1 ldeo
+fi
 
 # Now invoke the standard error handling.
 mtt_error_r cse2lde_r.log
 
 

Index: mttroot/mtt/bin/trans/def2write_r
==================================================================
--- mttroot/mtt/bin/trans/def2write_r
+++ mttroot/mtt/bin/trans/def2write_r
@@ -11,10 +11,19 @@
 ###############################################################
 ## Version control history
 ###############################################################
 ## $Id$
 ## $Log$
+## Revision 1.16.2.2  2002/09/10 22:09:14  geraint
+## Fixed presentation of globally optimised equations (ode view).
+##
+## Revision 1.16.2.1  2002/09/03 23:44:43  geraint
+## adding global optimisation (-optg).
+##
+## Revision 1.16  2002/09/03 19:34:15  geraint
+## Write EdX regardless - csex is needed to create ode when not optimised.
+##
 ## Revision 1.15  2002/08/29 15:45:20  geraint
 ## Tests for existence of matrix before entering shell loop.
 ## Tests for existence of expression before attempting to write or optimise.
 ##
 ## Revision 1.14  2002/08/09 14:34:45  geraint
@@ -74,13 +83,10 @@
 ###############################################################
 
 optimise=''
 while [ -n "`echo $1 | grep '^-'`" ]; do
     case $1 in
-	-optimise)
-	    opt='-optimise'
-	    optimise_msg=' with optimisation' ;;
 	-fixcc )
 	    include=`echo 'in "'$MTT_LIB'/reduce/fix_c.r";'` ;;
 	*)
 	    echo "$1 is an invalid argument - ignoring" ;;
     esac
@@ -89,11 +95,11 @@
 
 sys=$1 # System name
 rep=$2 # System representation
 
 # Inform User
-echo Creating $1_$2_write.r $optimise_msg
+echo Creating $1_$2_write.r
 
 # Find system constants
 Nx=`mtt_getsize $sys x` # States
 Nxx=`mtt_getsize $sys xx` # States x States
 Nu=`mtt_getsize $sys u` # Inputs 
@@ -151,110 +157,35 @@
     *)
         echo def2write_r: representation $rep not recognised
         exit
 esac
 
-
-mtt_fix_integers ()
-{
-    gawk -F":=" -v RS="$" -v ORS="$\n" '
-(NF == 1) {
-	print $0
-}
-(NF > 1) {
-	lhs=$1 ;
-	rhs=$2" " ;
-	rhs1 = gensub ( /([^A-Za-z_0-9\.\+])([0-9]+)([^\.0-9])/ , "\\1\\2.0\\3" , "g", rhs );
-	rhs2 = gensub ( /([^e]\+)([0-9]+)([^\.0-9])/ , "\\1\\2.0\\3" , "g", rhs1 );
-	rhs3 = gensub ( /([^A-Za-z_0-9\.\+])([0-9]+)e([0-9]+).0([^\.0-9])/ , "\\1\\2\\3\\4" , "g" , rhs)
-	printf "%s:=%s$\n", lhs, rhs3 ;
-    }'
-}
-
-mtt_optimise ()
-{
-    sys="$1"
-    lhs="$2"
-    rhs="$3"
-    
-    dae="${sys}_dae.r"
-    tmp="mtt_optimise.tmp"
-    tmp1="mtt_optimise1.tmp"
-    tmp2="mtt_optimise2.tmp"
-    tmp3="mtt_optimise3.tmp"
-    
-    grep -i -e "^$lhs" $dae |\
-	sed -e 's/;/\ INAME\ mtt_tmp/g' |\
-	sed -e 's/:=/:=/g' > $tmp1
-    nlines=`wc -l $tmp1 | gawk '{print $1}'`
-    if [ $nlines -gt 0 ]; then
-	{
-	    cat <<EOF
-off echo$
-load scope$
-on double$
-on noconvert$
-on rounded$
-off int$
-off nat$
-$include
-
-out "$tmp2"$
-optimize
-EOF
-	} > $tmp
-	cat $tmp1 >> $tmp
-	{
-	    cat <<EOF
-shut "$tmp2"$
-$end$
-EOF
-	} >> $tmp
-	echo "%%% $lhs %%%" >> def2write_r1.log
-	${SYMBOLIC:-reduce} < $tmp >> def2write_r1.log 2>> def2write_r2.log
-	cat $tmp2 | gawk -v RS=';' '($2 == ":=") {print $0}' > $tmp3
-	cat $tmp3 | mtt_fix_integers
-    fi
-    rm -f $tmp $tmp1 $tmp2 $tmp3
-    return
-}
-
-
 # Remove log files
 rm -f def2write_r1.log def2write_r2.log
 
 # Write out the code
 echo "" > $1_$2_write.r
 
-if [ ${opt:-""} = "-optimise" ]; then
-    echo 'off nat$'
-#    echo 'on echo$'
-else
-    echo 'off echo$'
-    echo 'load gentran$'
-fi >> $1_$2_write.r
+echo 'off echo$' >> $1_$2_write.r
+echo 'load gentran$' >> $1_$2_write.r
 
 for matrix in $matrices; do
     matrix_exists=`grep -i MTT${matrix} ${sys}_dae.r | wc -l | gawk '{print $1}'`
     if [ "$matrix" = "EdX" -o $matrix_exists -gt 0 ]; then
 	n=`first "$ns"`; ns=`rest "$ns"` 
 	m=`first "$ms"`; ms=`rest "$ms"`
 	is=`n2m 1 $n`; 
 	js=`n2m 1 $m`; 
+	echo "write \"% Begin Matrix MTT${matrix}\"$" >> $1_$2_write.r
 	if [ $n -ge 1 ]; then
 	    for i in $is; do
 		for j in $js; do
-		    if [ ${opt:-""} = "-optimise" ]; then
-			name=`echo MTT$matrix'('$i','$j')'`
-			mtt_optimise $1 "$comma$name" "$name"
-			comma=''
-		    else
-			echo 'write'
-			name=`echo MTT$matrix'('$i','$j')'`
-			echo '  '$comma$name ':=' $name '$'
-		    fi >> $1_$2_write.r
+		    echo 'write'
+		    name=`echo MTT$matrix'('$i','$j')'`
+		    echo '  '$comma$name ':=' $name '$'
 		done
 	    done
-	fi
+	fi >> $1_$2_write.r
+	echo "write \"% End Matrix MTT${matrix}\"$" >> $1_$2_write.r
     fi
 done
 echo ';END;'                           >>$1_$2_write.r

Index: mttroot/mtt/bin/trans/m/args2arg.m
==================================================================
--- mttroot/mtt/bin/trans/m/args2arg.m
+++ mttroot/mtt/bin/trans/m/args2arg.m
@@ -26,6 +26,28 @@
 
 % Field separator
 if nargin<3
   FS = ';';
 end;
+
+arg = '';
+if strcmp(args, '')==0
+  L = length(args);
+  args_count = 0;
+  for i=1:n
+    arg_count = 0;
+    arg = '';
+    if args_count == L
+      break;
+    end;  
+    while args_count < L
+      args_count = args_count+1;
+      arg_count = arg_count+1;
+      ch = str2ch(args,args_count);
+      if ch==FS
+	break;
+      end;
+      arg = [arg ch];
+    end;
+  end;
+end;
 

ADDED   mttroot/mtt/bin/trans/mtt_fix_integers
Index: mttroot/mtt/bin/trans/mtt_fix_integers
==================================================================
--- /dev/null
+++ mttroot/mtt/bin/trans/mtt_fix_integers
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+mttmatrix='\(mtt[A-Za-z][A-Za-z]*\)'
+integer='\([0-9][0-9]*\)'
+
+mtt_join_lines | gawk -v RS=${1:-"$"} -v ORS=${2:-"$\n"} ' {
+str = $0;
+str1 = gensub ( /([^A-Za-z_0-9\.\+])([0-9]+)([^\.0-9])/ , "\\1\\2.0\\3" , "g", str );
+str2 = gensub ( /([^e]\+)([0-9]+)([^\.0-9])/ , "\\1\\2.0\\3" , "g", str1 );
+str3 = gensub ( /([^A-Za-z_0-9\.\+])([0-9]+)e([0-9]+).0([^\.0-9])/ , "\\1\\2\\3\\4" , "g" , str2)
+printf "%s$\n", str3 ;
+}' | sed -e "s/$mttmatrix($integer\.0,/\1(\2,/g"

ADDED   mttroot/mtt/bin/trans/mtt_join_lines
Index: mttroot/mtt/bin/trans/mtt_join_lines
==================================================================
--- /dev/null
+++ mttroot/mtt/bin/trans/mtt_join_lines
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+gawk '{ printf ( "%s" , $0 ) }'		|\
+    gawk -v RS="$" '{ printf "%s$\n", $0 }'	|\
+    gawk -v RS=";" '{ printf "%s;\n", $0 }'

ADDED   mttroot/mtt/bin/trans/mtt_optimise
Index: mttroot/mtt/bin/trans/mtt_optimise
==================================================================
--- /dev/null
+++ mttroot/mtt/bin/trans/mtt_optimise
@@ -0,0 +1,121 @@
+#! /bin/sh
+
+# script uses Reduce + Scope to optimise a vector
+# either global (an entire vector) or local (line-by-line)
+
+extent=$1			# global or local
+system=$2
+representation=$3
+
+# error codes
+E_REP_NOT_SUPPORTED=-19
+E_FILE_NOT_EXIST=-20
+
+case $representation in
+    ae)
+	matrix=yz ;
+	nmatrix=`mtt_getsize $system yz` ;;
+    ode)
+	matrix=dx ;
+	nmatrix=`mtt_getsize $system x` ;;
+    cseo | odeo)
+	matrix=y ;
+	nmatrix=`mtt_getsize $system y` ;;
+    *)
+	exit $E_REP_NOT_SUPPORTED;;
+esac
+
+# Global optimisation: Generate a command of the form
+# optimise mtt?(1,1) :=: mtt?(1,1), mtt?(2,1) :=: mtt?(2,1), ..., INAME mtt_tmp$
+#
+# Local optimisation: Generate a command of the form
+# optimise mtt?(1,1) :=: mtt?(1,1) INAME mtt_tmp$ \
+# optimise mtt?(2,1) :=: mtt?(2,1) INAME mtt_tmp$ ...
+case $extent in
+    "global" )
+	delimiter=", "
+	terminate="INAME mtt_tmp$"
+	;;
+    "local" )
+	delimiter=" INAME mtt_tmp$ optimize"
+	terminate="$"
+	;;
+    * )
+	echo "*** unknown scope for optimisation"
+	echo "*** should be global or local"
+	exit -1
+	;;
+esac
+
+if [ $nmatrix -gt 0 ]; then
+    command="optimize"
+    counter=1
+    while [ $counter -le $nmatrix ]; do
+	command="$command mtt$matrix($counter,1) :=: mtt$matrix($counter,1)$delimiter"
+	counter=`expr $counter + 1`
+    done
+    command="$command $terminate"
+else
+    command=""
+fi
+
+logfile=${system}_${representation}_optimisation.log
+tmpfile=${system}_${representation}_optimisation.tmp
+outfile=${system}_${representation}.r
+
+if [ ! -f $outfile ]; then
+    exit $E_FILE_NOT_EXIST
+fi
+
+find_code ()
+{
+    file_in=${1:-${IN}}
+    portion=${2:-"body"}
+    head=`cat ${file_in} | gawk '($2 == "Begin" && $3 == "Matrix") { print NR }'`
+    foot=`cat ${file_in} | gawk '($2 == "End"   && $3 == "Matrix") { print NR }'`
+    case ${portion} in
+	head)
+	    start=0
+	    end=${head}
+	    ;;
+	body)
+	    start=${head}
+	    end=${foot}
+	    ;;
+	foot)
+	    start=${foot}
+	    end=end
+	    ;;
+	*)
+	    echo "Error in find_code: portion unknown"
+	    return -1
+	    ;;
+    esac
+    cat ${file_in} |\
+    gawk --assign start=${start} --assign end=${end} '
+	(start < NR && NR < end) { print $0 }'
+};
+
+
+# Use Reduce to perform the optimisation
+${SYMBOLIC:-reduce} <<EOF > $logfile 2>&1
+off nat;
+in "${system}_def.r";
+in "$outfile";
+load scope;
+out "$tmpfile";
+$command;
+shut "$tmpfile";
+$end;
+EOF
+
+cp $outfile $outfile.unoptimised
+cp $tmpfile $outfile.tmp
+
+find_code $outfile head > $tmpfile.head
+cat $tmpfile | mtt_fix_integers > $tmpfile.body
+find_code $outfile foot > $tmpfile.foot
+cat $tmpfile.head $tmpfile.body $tmpfile.foot > $outfile
+echo ";end;" >> $outfile
+
+mtt_error_r $logfile

Index: mttroot/mtt/bin/trans/mtt_r2m
==================================================================
--- mttroot/mtt/bin/trans/mtt_r2m
+++ mttroot/mtt/bin/trans/mtt_r2m
@@ -16,10 +16,13 @@
 ###############################################################
 ## Version control history
 ###############################################################
 ## $Id$
 ## $Log$
+## Revision 1.30  2002/03/26 11:59:54  geraint
+## Added dummy -optimise switch to prevent falling over for -cc generation.
+##
 ## Revision 1.29  2001/09/07 00:25:56  geraint
 ## Partial fix for insidious bug which eliminates lines of code when parameter
 ## names of the form (in* or off*) start continuation lines.
 ##
 ## Revision 1.28  2001/07/13 04:54:04  geraint
@@ -127,11 +130,11 @@
 	;;
     -parameters)
 	parameters='-parameters';
         par='mttpar'
 	;;
-    -optimise)
+    -optimise_local | -optimise_global )
 	;;
     *)
 	echo $1 is an unknown option
         exit;;
   esac

Index: mttroot/mtt/cc/sympar_txt2h.sh
==================================================================
--- mttroot/mtt/cc/sympar_txt2h.sh
+++ mttroot/mtt/cc/sympar_txt2h.sh
@@ -1,8 +1,11 @@
 #! /bin/sh
 # $Id$
 # $Log$
+# Revision 1.7  2002/07/10 11:53:32  geraint
+# Replaced shell loop with template expansion - perceptibly quicker generation of sympar.h.
+#
 # Revision 1.6  2002/05/19 13:01:22  geraint
 # Numerical solution of algebraic equations implemented for S-function target.
 #
 # Equation solving requires the Matlab Optimization Toolbox to be installed.
 #
@@ -581,14 +584,514 @@
 static double ${name}496 MTT_UNUSED;
 static double ${name}497 MTT_UNUSED;
 static double ${name}498 MTT_UNUSED;
 static double ${name}499 MTT_UNUSED;
 static double ${name}500 MTT_UNUSED;
+static double ${name}501 MTT_UNUSED;
+static double ${name}502 MTT_UNUSED;
+static double ${name}503 MTT_UNUSED;
+static double ${name}504 MTT_UNUSED;
+static double ${name}505 MTT_UNUSED;
+static double ${name}506 MTT_UNUSED;
+static double ${name}507 MTT_UNUSED;
+static double ${name}508 MTT_UNUSED;
+static double ${name}509 MTT_UNUSED;
+static double ${name}510 MTT_UNUSED;
+static double ${name}511 MTT_UNUSED;
+static double ${name}512 MTT_UNUSED;
+static double ${name}513 MTT_UNUSED;
+static double ${name}514 MTT_UNUSED;
+static double ${name}515 MTT_UNUSED;
+static double ${name}516 MTT_UNUSED;
+static double ${name}517 MTT_UNUSED;
+static double ${name}518 MTT_UNUSED;
+static double ${name}519 MTT_UNUSED;
+static double ${name}520 MTT_UNUSED;
+static double ${name}521 MTT_UNUSED;
+static double ${name}522 MTT_UNUSED;
+static double ${name}523 MTT_UNUSED;
+static double ${name}524 MTT_UNUSED;
+static double ${name}525 MTT_UNUSED;
+static double ${name}526 MTT_UNUSED;
+static double ${name}527 MTT_UNUSED;
+static double ${name}528 MTT_UNUSED;
+static double ${name}529 MTT_UNUSED;
+static double ${name}530 MTT_UNUSED;
+static double ${name}531 MTT_UNUSED;
+static double ${name}532 MTT_UNUSED;
+static double ${name}533 MTT_UNUSED;
+static double ${name}534 MTT_UNUSED;
+static double ${name}535 MTT_UNUSED;
+static double ${name}536 MTT_UNUSED;
+static double ${name}537 MTT_UNUSED;
+static double ${name}538 MTT_UNUSED;
+static double ${name}539 MTT_UNUSED;
+static double ${name}540 MTT_UNUSED;
+static double ${name}541 MTT_UNUSED;
+static double ${name}542 MTT_UNUSED;
+static double ${name}543 MTT_UNUSED;
+static double ${name}544 MTT_UNUSED;
+static double ${name}545 MTT_UNUSED;
+static double ${name}546 MTT_UNUSED;
+static double ${name}547 MTT_UNUSED;
+static double ${name}548 MTT_UNUSED;
+static double ${name}549 MTT_UNUSED;
+static double ${name}550 MTT_UNUSED;
+static double ${name}551 MTT_UNUSED;
+static double ${name}552 MTT_UNUSED;
+static double ${name}553 MTT_UNUSED;
+static double ${name}554 MTT_UNUSED;
+static double ${name}555 MTT_UNUSED;
+static double ${name}556 MTT_UNUSED;
+static double ${name}557 MTT_UNUSED;
+static double ${name}558 MTT_UNUSED;
+static double ${name}559 MTT_UNUSED;
+static double ${name}560 MTT_UNUSED;
+static double ${name}561 MTT_UNUSED;
+static double ${name}562 MTT_UNUSED;
+static double ${name}563 MTT_UNUSED;
+static double ${name}564 MTT_UNUSED;
+static double ${name}565 MTT_UNUSED;
+static double ${name}566 MTT_UNUSED;
+static double ${name}567 MTT_UNUSED;
+static double ${name}568 MTT_UNUSED;
+static double ${name}569 MTT_UNUSED;
+static double ${name}570 MTT_UNUSED;
+static double ${name}571 MTT_UNUSED;
+static double ${name}572 MTT_UNUSED;
+static double ${name}573 MTT_UNUSED;
+static double ${name}574 MTT_UNUSED;
+static double ${name}575 MTT_UNUSED;
+static double ${name}576 MTT_UNUSED;
+static double ${name}577 MTT_UNUSED;
+static double ${name}578 MTT_UNUSED;
+static double ${name}579 MTT_UNUSED;
+static double ${name}580 MTT_UNUSED;
+static double ${name}581 MTT_UNUSED;
+static double ${name}582 MTT_UNUSED;
+static double ${name}583 MTT_UNUSED;
+static double ${name}584 MTT_UNUSED;
+static double ${name}585 MTT_UNUSED;
+static double ${name}586 MTT_UNUSED;
+static double ${name}587 MTT_UNUSED;
+static double ${name}588 MTT_UNUSED;
+static double ${name}589 MTT_UNUSED;
+static double ${name}590 MTT_UNUSED;
+static double ${name}591 MTT_UNUSED;
+static double ${name}592 MTT_UNUSED;
+static double ${name}593 MTT_UNUSED;
+static double ${name}594 MTT_UNUSED;
+static double ${name}595 MTT_UNUSED;
+static double ${name}596 MTT_UNUSED;
+static double ${name}597 MTT_UNUSED;
+static double ${name}598 MTT_UNUSED;
+static double ${name}599 MTT_UNUSED;
+static double ${name}600 MTT_UNUSED;
+static double ${name}601 MTT_UNUSED;
+static double ${name}602 MTT_UNUSED;
+static double ${name}603 MTT_UNUSED;
+static double ${name}604 MTT_UNUSED;
+static double ${name}605 MTT_UNUSED;
+static double ${name}606 MTT_UNUSED;
+static double ${name}607 MTT_UNUSED;
+static double ${name}608 MTT_UNUSED;
+static double ${name}609 MTT_UNUSED;
+static double ${name}610 MTT_UNUSED;
+static double ${name}611 MTT_UNUSED;
+static double ${name}612 MTT_UNUSED;
+static double ${name}613 MTT_UNUSED;
+static double ${name}614 MTT_UNUSED;
+static double ${name}615 MTT_UNUSED;
+static double ${name}616 MTT_UNUSED;
+static double ${name}617 MTT_UNUSED;
+static double ${name}618 MTT_UNUSED;
+static double ${name}619 MTT_UNUSED;
+static double ${name}620 MTT_UNUSED;
+static double ${name}621 MTT_UNUSED;
+static double ${name}622 MTT_UNUSED;
+static double ${name}623 MTT_UNUSED;
+static double ${name}624 MTT_UNUSED;
+static double ${name}625 MTT_UNUSED;
+static double ${name}626 MTT_UNUSED;
+static double ${name}627 MTT_UNUSED;
+static double ${name}628 MTT_UNUSED;
+static double ${name}629 MTT_UNUSED;
+static double ${name}630 MTT_UNUSED;
+static double ${name}631 MTT_UNUSED;
+static double ${name}632 MTT_UNUSED;
+static double ${name}633 MTT_UNUSED;
+static double ${name}634 MTT_UNUSED;
+static double ${name}635 MTT_UNUSED;
+static double ${name}636 MTT_UNUSED;
+static double ${name}637 MTT_UNUSED;
+static double ${name}638 MTT_UNUSED;
+static double ${name}639 MTT_UNUSED;
+static double ${name}640 MTT_UNUSED;
+static double ${name}641 MTT_UNUSED;
+static double ${name}642 MTT_UNUSED;
+static double ${name}643 MTT_UNUSED;
+static double ${name}644 MTT_UNUSED;
+static double ${name}645 MTT_UNUSED;
+static double ${name}646 MTT_UNUSED;
+static double ${name}647 MTT_UNUSED;
+static double ${name}648 MTT_UNUSED;
+static double ${name}649 MTT_UNUSED;
+static double ${name}650 MTT_UNUSED;
+static double ${name}651 MTT_UNUSED;
+static double ${name}652 MTT_UNUSED;
+static double ${name}653 MTT_UNUSED;
+static double ${name}654 MTT_UNUSED;
+static double ${name}655 MTT_UNUSED;
+static double ${name}656 MTT_UNUSED;
+static double ${name}657 MTT_UNUSED;
+static double ${name}658 MTT_UNUSED;
+static double ${name}659 MTT_UNUSED;
+static double ${name}660 MTT_UNUSED;
+static double ${name}661 MTT_UNUSED;
+static double ${name}662 MTT_UNUSED;
+static double ${name}663 MTT_UNUSED;
+static double ${name}664 MTT_UNUSED;
+static double ${name}665 MTT_UNUSED;
+static double ${name}666 MTT_UNUSED;
+static double ${name}667 MTT_UNUSED;
+static double ${name}668 MTT_UNUSED;
+static double ${name}669 MTT_UNUSED;
+static double ${name}670 MTT_UNUSED;
+static double ${name}671 MTT_UNUSED;
+static double ${name}672 MTT_UNUSED;
+static double ${name}673 MTT_UNUSED;
+static double ${name}674 MTT_UNUSED;
+static double ${name}675 MTT_UNUSED;
+static double ${name}676 MTT_UNUSED;
+static double ${name}677 MTT_UNUSED;
+static double ${name}678 MTT_UNUSED;
+static double ${name}679 MTT_UNUSED;
+static double ${name}680 MTT_UNUSED;
+static double ${name}681 MTT_UNUSED;
+static double ${name}682 MTT_UNUSED;
+static double ${name}683 MTT_UNUSED;
+static double ${name}684 MTT_UNUSED;
+static double ${name}685 MTT_UNUSED;
+static double ${name}686 MTT_UNUSED;
+static double ${name}687 MTT_UNUSED;
+static double ${name}688 MTT_UNUSED;
+static double ${name}689 MTT_UNUSED;
+static double ${name}690 MTT_UNUSED;
+static double ${name}691 MTT_UNUSED;
+static double ${name}692 MTT_UNUSED;
+static double ${name}693 MTT_UNUSED;
+static double ${name}694 MTT_UNUSED;
+static double ${name}695 MTT_UNUSED;
+static double ${name}696 MTT_UNUSED;
+static double ${name}697 MTT_UNUSED;
+static double ${name}698 MTT_UNUSED;
+static double ${name}699 MTT_UNUSED;
+static double ${name}700 MTT_UNUSED;
+static double ${name}701 MTT_UNUSED;
+static double ${name}702 MTT_UNUSED;
+static double ${name}703 MTT_UNUSED;
+static double ${name}704 MTT_UNUSED;
+static double ${name}705 MTT_UNUSED;
+static double ${name}706 MTT_UNUSED;
+static double ${name}707 MTT_UNUSED;
+static double ${name}708 MTT_UNUSED;
+static double ${name}709 MTT_UNUSED;
+static double ${name}710 MTT_UNUSED;
+static double ${name}711 MTT_UNUSED;
+static double ${name}712 MTT_UNUSED;
+static double ${name}713 MTT_UNUSED;
+static double ${name}714 MTT_UNUSED;
+static double ${name}715 MTT_UNUSED;
+static double ${name}716 MTT_UNUSED;
+static double ${name}717 MTT_UNUSED;
+static double ${name}718 MTT_UNUSED;
+static double ${name}719 MTT_UNUSED;
+static double ${name}720 MTT_UNUSED;
+static double ${name}721 MTT_UNUSED;
+static double ${name}722 MTT_UNUSED;
+static double ${name}723 MTT_UNUSED;
+static double ${name}724 MTT_UNUSED;
+static double ${name}725 MTT_UNUSED;
+static double ${name}726 MTT_UNUSED;
+static double ${name}727 MTT_UNUSED;
+static double ${name}728 MTT_UNUSED;
+static double ${name}729 MTT_UNUSED;
+static double ${name}730 MTT_UNUSED;
+static double ${name}731 MTT_UNUSED;
+static double ${name}732 MTT_UNUSED;
+static double ${name}733 MTT_UNUSED;
+static double ${name}734 MTT_UNUSED;
+static double ${name}735 MTT_UNUSED;
+static double ${name}736 MTT_UNUSED;
+static double ${name}737 MTT_UNUSED;
+static double ${name}738 MTT_UNUSED;
+static double ${name}739 MTT_UNUSED;
+static double ${name}740 MTT_UNUSED;
+static double ${name}741 MTT_UNUSED;
+static double ${name}742 MTT_UNUSED;
+static double ${name}743 MTT_UNUSED;
+static double ${name}744 MTT_UNUSED;
+static double ${name}745 MTT_UNUSED;
+static double ${name}746 MTT_UNUSED;
+static double ${name}747 MTT_UNUSED;
+static double ${name}748 MTT_UNUSED;
+static double ${name}749 MTT_UNUSED;
+static double ${name}750 MTT_UNUSED;
+static double ${name}751 MTT_UNUSED;
+static double ${name}752 MTT_UNUSED;
+static double ${name}753 MTT_UNUSED;
+static double ${name}754 MTT_UNUSED;
+static double ${name}755 MTT_UNUSED;
+static double ${name}756 MTT_UNUSED;
+static double ${name}757 MTT_UNUSED;
+static double ${name}758 MTT_UNUSED;
+static double ${name}759 MTT_UNUSED;
+static double ${name}760 MTT_UNUSED;
+static double ${name}761 MTT_UNUSED;
+static double ${name}762 MTT_UNUSED;
+static double ${name}763 MTT_UNUSED;
+static double ${name}764 MTT_UNUSED;
+static double ${name}765 MTT_UNUSED;
+static double ${name}766 MTT_UNUSED;
+static double ${name}767 MTT_UNUSED;
+static double ${name}768 MTT_UNUSED;
+static double ${name}769 MTT_UNUSED;
+static double ${name}770 MTT_UNUSED;
+static double ${name}771 MTT_UNUSED;
+static double ${name}772 MTT_UNUSED;
+static double ${name}773 MTT_UNUSED;
+static double ${name}774 MTT_UNUSED;
+static double ${name}775 MTT_UNUSED;
+static double ${name}776 MTT_UNUSED;
+static double ${name}777 MTT_UNUSED;
+static double ${name}778 MTT_UNUSED;
+static double ${name}779 MTT_UNUSED;
+static double ${name}780 MTT_UNUSED;
+static double ${name}781 MTT_UNUSED;
+static double ${name}782 MTT_UNUSED;
+static double ${name}783 MTT_UNUSED;
+static double ${name}784 MTT_UNUSED;
+static double ${name}785 MTT_UNUSED;
+static double ${name}786 MTT_UNUSED;
+static double ${name}787 MTT_UNUSED;
+static double ${name}788 MTT_UNUSED;
+static double ${name}789 MTT_UNUSED;
+static double ${name}790 MTT_UNUSED;
+static double ${name}791 MTT_UNUSED;
+static double ${name}792 MTT_UNUSED;
+static double ${name}793 MTT_UNUSED;
+static double ${name}794 MTT_UNUSED;
+static double ${name}795 MTT_UNUSED;
+static double ${name}796 MTT_UNUSED;
+static double ${name}797 MTT_UNUSED;
+static double ${name}798 MTT_UNUSED;
+static double ${name}799 MTT_UNUSED;
+static double ${name}800 MTT_UNUSED;
+static double ${name}801 MTT_UNUSED;
+static double ${name}802 MTT_UNUSED;
+static double ${name}803 MTT_UNUSED;
+static double ${name}804 MTT_UNUSED;
+static double ${name}805 MTT_UNUSED;
+static double ${name}806 MTT_UNUSED;
+static double ${name}807 MTT_UNUSED;
+static double ${name}808 MTT_UNUSED;
+static double ${name}809 MTT_UNUSED;
+static double ${name}810 MTT_UNUSED;
+static double ${name}811 MTT_UNUSED;
+static double ${name}812 MTT_UNUSED;
+static double ${name}813 MTT_UNUSED;
+static double ${name}814 MTT_UNUSED;
+static double ${name}815 MTT_UNUSED;
+static double ${name}816 MTT_UNUSED;
+static double ${name}817 MTT_UNUSED;
+static double ${name}818 MTT_UNUSED;
+static double ${name}819 MTT_UNUSED;
+static double ${name}820 MTT_UNUSED;
+static double ${name}821 MTT_UNUSED;
+static double ${name}822 MTT_UNUSED;
+static double ${name}823 MTT_UNUSED;
+static double ${name}824 MTT_UNUSED;
+static double ${name}825 MTT_UNUSED;
+static double ${name}826 MTT_UNUSED;
+static double ${name}827 MTT_UNUSED;
+static double ${name}828 MTT_UNUSED;
+static double ${name}829 MTT_UNUSED;
+static double ${name}830 MTT_UNUSED;
+static double ${name}831 MTT_UNUSED;
+static double ${name}832 MTT_UNUSED;
+static double ${name}833 MTT_UNUSED;
+static double ${name}834 MTT_UNUSED;
+static double ${name}835 MTT_UNUSED;
+static double ${name}836 MTT_UNUSED;
+static double ${name}837 MTT_UNUSED;
+static double ${name}838 MTT_UNUSED;
+static double ${name}839 MTT_UNUSED;
+static double ${name}840 MTT_UNUSED;
+static double ${name}841 MTT_UNUSED;
+static double ${name}842 MTT_UNUSED;
+static double ${name}843 MTT_UNUSED;
+static double ${name}844 MTT_UNUSED;
+static double ${name}845 MTT_UNUSED;
+static double ${name}846 MTT_UNUSED;
+static double ${name}847 MTT_UNUSED;
+static double ${name}848 MTT_UNUSED;
+static double ${name}849 MTT_UNUSED;
+static double ${name}850 MTT_UNUSED;
+static double ${name}851 MTT_UNUSED;
+static double ${name}852 MTT_UNUSED;
+static double ${name}853 MTT_UNUSED;
+static double ${name}854 MTT_UNUSED;
+static double ${name}855 MTT_UNUSED;
+static double ${name}856 MTT_UNUSED;
+static double ${name}857 MTT_UNUSED;
+static double ${name}858 MTT_UNUSED;
+static double ${name}859 MTT_UNUSED;
+static double ${name}860 MTT_UNUSED;
+static double ${name}861 MTT_UNUSED;
+static double ${name}862 MTT_UNUSED;
+static double ${name}863 MTT_UNUSED;
+static double ${name}864 MTT_UNUSED;
+static double ${name}865 MTT_UNUSED;
+static double ${name}866 MTT_UNUSED;
+static double ${name}867 MTT_UNUSED;
+static double ${name}868 MTT_UNUSED;
+static double ${name}869 MTT_UNUSED;
+static double ${name}870 MTT_UNUSED;
+static double ${name}871 MTT_UNUSED;
+static double ${name}872 MTT_UNUSED;
+static double ${name}873 MTT_UNUSED;
+static double ${name}874 MTT_UNUSED;
+static double ${name}875 MTT_UNUSED;
+static double ${name}876 MTT_UNUSED;
+static double ${name}877 MTT_UNUSED;
+static double ${name}878 MTT_UNUSED;
+static double ${name}879 MTT_UNUSED;
+static double ${name}880 MTT_UNUSED;
+static double ${name}881 MTT_UNUSED;
+static double ${name}882 MTT_UNUSED;
+static double ${name}883 MTT_UNUSED;
+static double ${name}884 MTT_UNUSED;
+static double ${name}885 MTT_UNUSED;
+static double ${name}886 MTT_UNUSED;
+static double ${name}887 MTT_UNUSED;
+static double ${name}888 MTT_UNUSED;
+static double ${name}889 MTT_UNUSED;
+static double ${name}890 MTT_UNUSED;
+static double ${name}891 MTT_UNUSED;
+static double ${name}892 MTT_UNUSED;
+static double ${name}893 MTT_UNUSED;
+static double ${name}894 MTT_UNUSED;
+static double ${name}895 MTT_UNUSED;
+static double ${name}896 MTT_UNUSED;
+static double ${name}897 MTT_UNUSED;
+static double ${name}898 MTT_UNUSED;
+static double ${name}899 MTT_UNUSED;
+static double ${name}900 MTT_UNUSED;
+static double ${name}901 MTT_UNUSED;
+static double ${name}902 MTT_UNUSED;
+static double ${name}903 MTT_UNUSED;
+static double ${name}904 MTT_UNUSED;
+static double ${name}905 MTT_UNUSED;
+static double ${name}906 MTT_UNUSED;
+static double ${name}907 MTT_UNUSED;
+static double ${name}908 MTT_UNUSED;
+static double ${name}909 MTT_UNUSED;
+static double ${name}910 MTT_UNUSED;
+static double ${name}911 MTT_UNUSED;
+static double ${name}912 MTT_UNUSED;
+static double ${name}913 MTT_UNUSED;
+static double ${name}914 MTT_UNUSED;
+static double ${name}915 MTT_UNUSED;
+static double ${name}916 MTT_UNUSED;
+static double ${name}917 MTT_UNUSED;
+static double ${name}918 MTT_UNUSED;
+static double ${name}919 MTT_UNUSED;
+static double ${name}920 MTT_UNUSED;
+static double ${name}921 MTT_UNUSED;
+static double ${name}922 MTT_UNUSED;
+static double ${name}923 MTT_UNUSED;
+static double ${name}924 MTT_UNUSED;
+static double ${name}925 MTT_UNUSED;
+static double ${name}926 MTT_UNUSED;
+static double ${name}927 MTT_UNUSED;
+static double ${name}928 MTT_UNUSED;
+static double ${name}929 MTT_UNUSED;
+static double ${name}930 MTT_UNUSED;
+static double ${name}931 MTT_UNUSED;
+static double ${name}932 MTT_UNUSED;
+static double ${name}933 MTT_UNUSED;
+static double ${name}934 MTT_UNUSED;
+static double ${name}935 MTT_UNUSED;
+static double ${name}936 MTT_UNUSED;
+static double ${name}937 MTT_UNUSED;
+static double ${name}938 MTT_UNUSED;
+static double ${name}939 MTT_UNUSED;
+static double ${name}940 MTT_UNUSED;
+static double ${name}941 MTT_UNUSED;
+static double ${name}942 MTT_UNUSED;
+static double ${name}943 MTT_UNUSED;
+static double ${name}944 MTT_UNUSED;
+static double ${name}945 MTT_UNUSED;
+static double ${name}946 MTT_UNUSED;
+static double ${name}947 MTT_UNUSED;
+static double ${name}948 MTT_UNUSED;
+static double ${name}949 MTT_UNUSED;
+static double ${name}950 MTT_UNUSED;
+static double ${name}951 MTT_UNUSED;
+static double ${name}952 MTT_UNUSED;
+static double ${name}953 MTT_UNUSED;
+static double ${name}954 MTT_UNUSED;
+static double ${name}955 MTT_UNUSED;
+static double ${name}956 MTT_UNUSED;
+static double ${name}957 MTT_UNUSED;
+static double ${name}958 MTT_UNUSED;
+static double ${name}959 MTT_UNUSED;
+static double ${name}960 MTT_UNUSED;
+static double ${name}961 MTT_UNUSED;
+static double ${name}962 MTT_UNUSED;
+static double ${name}963 MTT_UNUSED;
+static double ${name}964 MTT_UNUSED;
+static double ${name}965 MTT_UNUSED;
+static double ${name}966 MTT_UNUSED;
+static double ${name}967 MTT_UNUSED;
+static double ${name}968 MTT_UNUSED;
+static double ${name}969 MTT_UNUSED;
+static double ${name}970 MTT_UNUSED;
+static double ${name}971 MTT_UNUSED;
+static double ${name}972 MTT_UNUSED;
+static double ${name}973 MTT_UNUSED;
+static double ${name}974 MTT_UNUSED;
+static double ${name}975 MTT_UNUSED;
+static double ${name}976 MTT_UNUSED;
+static double ${name}977 MTT_UNUSED;
+static double ${name}978 MTT_UNUSED;
+static double ${name}979 MTT_UNUSED;
+static double ${name}980 MTT_UNUSED;
+static double ${name}981 MTT_UNUSED;
+static double ${name}982 MTT_UNUSED;
+static double ${name}983 MTT_UNUSED;
+static double ${name}984 MTT_UNUSED;
+static double ${name}985 MTT_UNUSED;
+static double ${name}986 MTT_UNUSED;
+static double ${name}987 MTT_UNUSED;
+static double ${name}988 MTT_UNUSED;
+static double ${name}989 MTT_UNUSED;
+static double ${name}990 MTT_UNUSED;
+static double ${name}991 MTT_UNUSED;
+static double ${name}992 MTT_UNUSED;
+static double ${name}993 MTT_UNUSED;
+static double ${name}994 MTT_UNUSED;
+static double ${name}995 MTT_UNUSED;
+static double ${name}996 MTT_UNUSED;
+static double ${name}997 MTT_UNUSED;
+static double ${name}998 MTT_UNUSED;
+static double ${name}999 MTT_UNUSED;
+static double ${name}1000 MTT_UNUSED;
 EOF
 
-    if [ ${NUM_OF_TMP_VAR} -gt 500 ]; then
-	i=501
+    if [ ${NUM_OF_TMP_VAR} -gt 1000 ]; then
+	i=1001
 	while [ ${i} -le ${NUM_OF_TMP_VAR} ]
 	do
 	  echo "static double ${name}${i} MTT_UNUSED;"
 	  i=`expr ${i} + 1`
 	done