aboutsummaryrefslogtreecommitdiff
path: root/externals
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2002-12-02 17:50:01 +0000
committerThomas Grill <xovo@users.sourceforge.net>2002-12-02 17:50:01 +0000
commit0a109da279e9df66fb5ea7d6bdaeffed16592f02 (patch)
tree9835a26fbd77b7689050ca0bdd25c8ce0b7cf264 /externals
parent4985ae92eea0eb7609a2449d7e147f69b7134b50 (diff)
"version 0.1.1"
svn path=/trunk/; revision=266
Diffstat (limited to 'externals')
-rwxr-xr-xexternals/grill/vasp/build-pd-darwin.sh17
-rw-r--r--externals/grill/vasp/build-pd-linux.sh17
-rw-r--r--externals/grill/vasp/changes.txt98
-rwxr-xr-xexternals/grill/vasp/config-pd-darwin.txt30
-rw-r--r--externals/grill/vasp/config-pd-linux.txt27
-rw-r--r--externals/grill/vasp/config-pd-msvc.txt21
-rw-r--r--externals/grill/vasp/gpl.txt346
-rw-r--r--externals/grill/vasp/license.txt64
-rw-r--r--externals/grill/vasp/make-files.txt13
-rwxr-xr-xexternals/grill/vasp/makefile.pd-darwin81
-rw-r--r--externals/grill/vasp/makefile.pd-linux81
-rw-r--r--externals/grill/vasp/makefile.pd-msvc58
-rw-r--r--externals/grill/vasp/mixfft.txt85
-rw-r--r--externals/grill/vasp/readme.txt93
-rw-r--r--externals/grill/vasp/todo.txt61
-rw-r--r--externals/grill/vasp/vasp.cwbin0 -> 120144 bytes
-rw-r--r--externals/grill/vasp/vasp.doxy188
-rw-r--r--externals/grill/vasp/vasp.dsp484
18 files changed, 1764 insertions, 0 deletions
diff --git a/externals/grill/vasp/build-pd-darwin.sh b/externals/grill/vasp/build-pd-darwin.sh
new file mode 100755
index 00000000..38814a9a
--- /dev/null
+++ b/externals/grill/vasp/build-pd-darwin.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+SYS=pd-darwin
+
+. config-${SYS}.txt
+
+make -f makefile.${SYS} &&
+{
+ if [ $INSTDIR != "" ]; then
+ echo Now install as root
+ sudo make -f makefile.${SYS} install
+ fi
+ if [ $HELPDIR != "" ]; then
+ echo Now install help as root
+ sudo make -f makefile.${SYS} install-help
+ fi
+}
diff --git a/externals/grill/vasp/build-pd-linux.sh b/externals/grill/vasp/build-pd-linux.sh
new file mode 100644
index 00000000..77c6e3ff
--- /dev/null
+++ b/externals/grill/vasp/build-pd-linux.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+SYS=pd-linux
+
+. config-${SYS}.txt
+
+make -f makefile.${SYS} &&
+{
+ if [ $INSTDIR != "" ]; then
+ echo Now install as root
+ su -c "make -f makefile.${SYS} install"
+ fi
+ if [ $HELPDIR != "" ]; then
+ echo Now install help as root
+ su -c "make -f makefile.${SYS} install-help"
+ fi
+}
diff --git a/externals/grill/vasp/changes.txt b/externals/grill/vasp/changes.txt
new file mode 100644
index 00000000..0b3abf59
--- /dev/null
+++ b/externals/grill/vasp/changes.txt
@@ -0,0 +1,98 @@
+Version history:
+
+0.1.1:
+- FIX: bug in resize of immediate buffers
+- CHANGE: check (at actual operation!) whether vector exceeds buffer size (GetRVecs, GetCVecs -> corrlen)
+
+0.1.0:
+- NEW: vasp.a<, vasp.a>, vasp.a<=, vasp.a>= for absolute comparisons
+- CHANGE: clear stored vasp of an object if a "set" message with an invalid vasp is received
+- CHANGE: cleaned up the process loops (with thread yield) and fixed a corresponding bug in vasp.peaks/valleys
+- CHANGE: warn - but don't stop - on large FFT prime factors
+- FIX: vasp.radd and vasp.rpow had wrong argument initialization
+- FIX: mixfft is not thread-safe... introduced thread mutex for it
+- FIX: vasp.shift: shift argument was modulo frame count... why?
+
+0.0.8:
+- CHANGE: vasp.radio got right outlet for non-radio messages
+- ADD: thread yield for all simple vasp objects
+- CHANGE: vasp.? and vasp.??: made explicit list outlets
+- NEW: vasp.window, vasp.*window, vasp.!window, vasp.*!window, vasp.xwindow, vasp.*xwindow
+- REMOVE: vasp.bevel, vasp.!bevel... obsolete due to new vasp.window objects
+- REMOVE: vasp.noradio (vasp.!radio)... can easily be an abstraction of vasp.radio
+- ADD: minimum length parameter for immediate vasps
+- NEW: vasp.channel? (vasp.c?), vasp.channel (vasp.c) for set/query of buffer channel
+- CHANGE: env - reversed time/value pairs to value/time pairs
+- FIX: vasp.! with length arg outputs its reference on bang
+- FIX: on set message check for invalid vasps
+- FIX: reintroduce test for invalid buffer names (why was it commented out?)
+- FIX: fixe several bugs in vasp.offset= and vasp.frames=
+- CHANGE: allow size 0 (is default) for immediate vasps
+
+0.0.7:
+- CHANGE: vasp.m is now called vasp.multi by default
+- CHANGE: vasp.sync and vasp.multi now have a default argument = 2
+- FIX: vasp.phasor - period length now 1 instead of 2 PI
+- FIX: bug in multi mode (more src, one arg vector)
+- ADD: path specification for help symbols
+- CHANGE: rewrote vasp.imm implementation (still very inefficient!!)
+- ADD: prior message defines differential priority for detached operations
+- ADD: full DFT implementation (radix-2/radix-n) - also support of "to" message
+- ADD: full implementation of vasp.(x)tilt with several interpolation methods
+- CHANGE: vasp.split and vasp.join now have default argument = 2
+- ADD: vasp.offset= (vasp.o=) and vasp.frames= (vasp.f=): search for sample values (eg. zero crossings)
+- ADD: checks and log messages for out-of-range buffer offset and length
+
+0.0.6:
+- reorganized file structure
+- ADD: main names of vasp.n and vasp.n? are now vasp.vector and vasp.vectors?, respectively
+- ADD: main names of vasp.? and vasp.?? are now vasp.list and vasp.nonzero, respectively
+- NEW: vasp.size, vasp.size+, vasp.size? (vasp.s,vasp.s+,vasp.s?) for buffer size manipulation
+- NEW: vasp.peaks? for extremum extraction
+- ADD: shortcuts for vasp.frames,vasp.frames+,vasp.frames? -> vasp.f,vasp.f+,vasp.f?
+- CHANGE: changed vasp.offs,vasp.offs+,vasp.offs? to vasp.offset,vasp.offset+,vasp.offset?
+- ADD: shortcuts for vasp.offset,vasp.offset+,vasp.offset? -> vasp.o,vasp.o+,vasp.o?
+- ADD: envelopes (env ...) as arguments to all operations where vasps are used
+- FIX: default arguments for all binary/anytype operations
+- ADD: vasp.frames* (vasp.f*), vasp.frames/ (vasp.f/), vasp.size* (vasp.s*), vasp.size/ (vasp.s/)
+- ADD: detached operation: operations run as threads, according to detach flag/message
+- CHANGE: vasp.sync has as many outputs as inputs and outputs all input vasps
+- ADD: vasp.! : like vasp but stores the content temporarily (not just the reference)
+- ADD: vasp.copy (vasp.->) and vasp.ccopy (vasp.c->) for instant vasp copying
+- ADD: vasp.radio and vasp.noradio (vasp.!radio) ... filters for radio messages
+- ADD: vasp.fix - bashes NANs to zero, normalizes denormal numbers
+- ADD: double type consisting of 2 additive floats (e.g. "double 1. 1.e-13") for all numeric arguments
+- ADD: vasp.(x)shift - "fill" method/flag defines how to fill shifted areas (0..zero (default),1..none,2..edge value)
+
+0.0.5:
+- FIX: lacking sqrt in [vasp.rmin?],[vasp.rmax?]
+- FIX: (offs >= frames) bug in [vasp.offs?]
+- ADD: lacking setup of [vasp.!-] and [vasp.c!-] objects
+- FIX: buggy [vasp.int] code
+- FIX: recognition of integer arguments
+
+0.0.4:
+- CHANGE: vasp.min/max functions so that a vasp length 0 results in 0
+- REMOVED: [vasp.inv], [vasp.cinv].... already replaced by [vasp.!/ 1]
+- FIX: outlet bug in [vasp.?]
+- ADD: right inlet to [vasp]... just like in [float] etc.
+
+0.0.3:
+- restructured the code for future use of break-point lists (aka envelopes) as arguments
+- changed some object's names
+- new objects: vasp.min?, vasp.max? and the likes
+- fixed Max problem with connecting vasp.min,vasp.max right outlet to number boxes
+- fixed right inlet problem for generator and filter objects
+
+0.0.2:
+- vasp.cmin,vasp.cmax - renamed to vasp.rmin,vasp.rmax
+- reversed vasp channel and offset
+- fixed bug with arguments to complex binary operations
+- vasp.chk: included channel check
+- fixed pointer bug in vasp.?
+- fixed pointer increment bug in vasp.fhp
+- changed VecBlock implementation
+
+0.0.1:
+- defined the vasp
+- quick and dirty setup of most functions (non-interruptible)
diff --git a/externals/grill/vasp/config-pd-darwin.txt b/externals/grill/vasp/config-pd-darwin.txt
new file mode 100755
index 00000000..596c1d4d
--- /dev/null
+++ b/externals/grill/vasp/config-pd-darwin.txt
@@ -0,0 +1,30 @@
+# VASP - vector assembling vector processor
+# Copyright(c) 2002 Thomas Grill (xovo@gmx.net)
+#
+
+# your c++ compiler (normally g++)
+CXX=g++
+
+# where are the PD header files?
+# leave it blank if it is a system directory (like /usr/local/include),
+# since gcc 3.2 complains about it
+PDPATH=/usr/local/pd/src
+
+# where is the PD executable?
+PD=/usr/local/pd/bin/pd
+
+# where do the flext libraries reside?
+FLEXTPATH=/usr/local/pd/flext
+
+# where should flext libraries be built?
+TARGDIR=./pd-darwin
+
+# where should VASP be installed?
+# (leave blank to omit installation)
+# a subfolder "vasp" will be created for the files
+INSTDIR=/usr/local/pd/extra
+
+# where should the VASP help be installed?
+# (leave blank to omit installation)
+# a subfolder "vasp" will be created for the files
+HELPDIR=/usr/local/pd/doc/5.reference
diff --git a/externals/grill/vasp/config-pd-linux.txt b/externals/grill/vasp/config-pd-linux.txt
new file mode 100644
index 00000000..0a01f364
--- /dev/null
+++ b/externals/grill/vasp/config-pd-linux.txt
@@ -0,0 +1,27 @@
+# VASP - vector assembling vector processor
+# Copyright(c) 2002 Thomas Grill (xovo@gmx.net)
+#
+
+# your c++ compiler (normally g++)
+CXX=g++
+
+# where are the PD header files?
+# leave it blank if it is a system directory (like /usr/local/include),
+# since gcc 3.2 complains about it
+PDPATH=
+
+# where do the flext libraries reside?
+FLEXTPATH=/usr/local/lib/pd/flext
+
+# where should flext libraries be built?
+TARGDIR=./pd-linux
+
+# where should VASP be installed?
+# (leave blank to omit installation)
+# a subfolder "vasp" will be created for the files
+INSTDIR=/usr/local/lib/pd/extra
+
+# where should the VASP help be installed?
+# (leave blank to omit installation)
+# a subfolder "vasp" will be created for the files
+HELPDIR=/usr/local/lib/pd/doc/5.reference
diff --git a/externals/grill/vasp/config-pd-msvc.txt b/externals/grill/vasp/config-pd-msvc.txt
new file mode 100644
index 00000000..d43b8ee6
--- /dev/null
+++ b/externals/grill/vasp/config-pd-msvc.txt
@@ -0,0 +1,21 @@
+# VASP - vector assembling signal processor
+# Copyright (c) 2002 Thomas Grill (xovo@gmx.net)
+#
+
+# where is PD?
+PDPATH=c:\programme\audio\pd
+
+# where do the flext libraries reside?
+FLEXTPATH=$(PDPATH)\flext
+
+# where is MS VC++?
+MSVCPATH=c:\programme\prog\microsoft visual studio\VC98
+
+# where should the external be built?
+OUTPATH=pd-msvc
+
+# should the external be installed? (yes/no)
+INSTALL=yes
+
+# where should the external be installed?
+INSTPATH=$(PDPATH)\extra
diff --git a/externals/grill/vasp/gpl.txt b/externals/grill/vasp/gpl.txt
new file mode 100644
index 00000000..5ea29a7d
--- /dev/null
+++ b/externals/grill/vasp/gpl.txt
@@ -0,0 +1,346 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
diff --git a/externals/grill/vasp/license.txt b/externals/grill/vasp/license.txt
new file mode 100644
index 00000000..24063b2c
--- /dev/null
+++ b/externals/grill/vasp/license.txt
@@ -0,0 +1,64 @@
+VASP modular - vector assembling signal processor
+Object library for Max/MSP and PD
+Copyright (C) 2002 Thomas Grill
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+There is one exception though, concerning the usage of the
+mixfft code by Jens Joergen Nielsen. See the file mixfft.txt
+for the respective licensing details.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+In the official VASP distribution, the GNU General Public License is
+in the file gpl.txt
+
+
+Excluded from this license is the source code file of MixFFT.
+See the mixfft.txt file of the VASP package for the respective license text.
+
+---------------------------------------------------------
+
+ OTHER COPYRIGHT NOTICES
+
+---------------------------------------------------------
+
+The package is based on ideas originally conceived and
+programmed in FORTRAN by Guenther Rabl.
+
+VASP modular uses some code - see the license texts below.
+
+--- flext ----------------------------------------------
+flext - C++ layer for Max/MSP and pd (pure data) externals
+Copyright (C) 2001,2002 Thomas Grill
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+In the official flext distribution, the GNU General Public License is
+in the file gpl.txt
+
+--- mixfft ----------------------------------------------
+See the file mixfft.txt included with the VASP distribution.
+
diff --git a/externals/grill/vasp/make-files.txt b/externals/grill/vasp/make-files.txt
new file mode 100644
index 00000000..e842e8f7
--- /dev/null
+++ b/externals/grill/vasp/make-files.txt
@@ -0,0 +1,13 @@
+# all the source files from the package
+SRCS= \
+arg.cpp mixfft.cpp obj_part.cpp obj_split.cpp opparam.cpp ops_cplx.cpp ops_gen.cpp ops_trnsc.cpp util.cpp \
+buflib.cpp obj_chns.cpp obj_peaks.cpp obj_sync.cpp ops_arith.cpp ops_dft.cpp ops_qminmax.cpp ops_wnd.cpp vasp.cpp \
+classes.cpp obj_frames.cpp obj_q.cpp obj_vasp.cpp ops_assign.cpp ops_feature.cpp ops_rearr.cpp opvecs.cpp vbuffer.cpp \
+env.cpp obj_imm.cpp obj_radio.cpp obj_vecs.cpp ops_carith.cpp ops_flt.cpp ops_resmp.cpp rdx2fft.cpp vecblk.cpp \
+main.cpp obj_offs.cpp obj_size.cpp opbase.cpp ops_cmp.cpp ops_gate.cpp ops_search.cpp rvfft.cpp
+
+HDRS= \
+arg.h env.h opdefs.h oppermute.h ops_assign.h ops_cplx.h ops_flt.h ops_resmp.h ops_wnd.h vbuffer.h \
+buflib.h main.h oploop.h ops.h ops_carith.h ops_dft.h ops_gen.h ops_search.h util.h vecblk.h \
+classes.h opbase.h opparam.h ops_arith.h ops_cmp.h ops_feature.h ops_rearr.h ops_trnsc.h vasp.h
+
diff --git a/externals/grill/vasp/makefile.pd-darwin b/externals/grill/vasp/makefile.pd-darwin
new file mode 100755
index 00000000..58fe8c93
--- /dev/null
+++ b/externals/grill/vasp/makefile.pd-darwin
@@ -0,0 +1,81 @@
+# VASP - vector assembling vector processor
+# Copyright (c)2002 Thomas Grill (xovo@gmx.net)
+#
+# Makefile for gcc @ OSX (darwin)
+#
+# usage:
+# to build run "make -f makefile.pd-darwin"
+# to install (as root), do "make -f makefile.pd-darwin install"
+# to install help, do "make -f makefile.pd-darwin install-help"
+#
+
+CONFIG=config-pd-darwin.txt
+
+include ${CONFIG}
+
+FLEXTLIB=$(FLEXTPATH)/flext_t.a
+
+# compiler stuff
+INCLUDES=$(PDPATH)
+FLAGS=-DPD -Dunix -DMACOSX -DFLEXT_THREADS
+CFLAGS=-O6 -Wno-unused -Wno-parentheses -Wno-switch -Wstrict-prototypes # -maltivec
+LIBS=m
+LDFLAGS=-bundle -bundle_loader $(PD)
+
+# ----------------------------------------------
+# the rest can stay untouched
+# ----------------------------------------------
+
+NAME=vasp
+SRCDIR=source
+
+include make-files.txt
+
+MAKEFILE=makefile.pd-darwin
+TARGET=$(TARGDIR)/$(NAME).pd_darwin
+
+
+# default target
+all: $(TARGDIR) $(TARGET)
+
+$(patsubst %,$(SRCDIR)/%,$(SRCS)): $(patsubst %,$(SRCDIR)/%,$(HDRS)) $(MAKEFILE) $(CONFIG)
+ touch $(patsubst %,$(SRCDIR)/%,$(SRCS))
+
+$(TARGDIR):
+ mkdir $(TARGDIR)
+
+$(TARGDIR)/%.o : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(FLEXTPATH)) $< -o $@
+
+$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) $(FLEXTLIB)
+ $(CXX) $(LDFLAGS) $^ $(patsubst %,-l%,$(LIBS)) -o $@
+ chmod 755 $@
+
+
+$(INSTDIR):
+ mkdir $(INSTDIR)
+
+$(INSTDIR)/vasp: $(INSTDIR)
+ mkdir $(INSTDIR)/vasp
+
+install:: $(INSTDIR)/vasp
+
+install:: $(TARGET) pd
+ cp -R $^ $(INSTDIR)/vasp
+# chown -R root.root $(INSTDIR)/vasp
+
+
+$(HELPDIR)/vasp:
+ mkdir $(HELPDIR)/vasp
+
+install-help:: $(HELPDIR)/vasp
+
+install-help:: ./pd-help
+ cp $^/*.* $(HELPDIR)/vasp
+# chown -R root.root $(HELPDIR)/vasp
+
+
+.PHONY: clean
+clean:
+ rm -f $(TARGDIR)/*.o $(TARGET)
+
diff --git a/externals/grill/vasp/makefile.pd-linux b/externals/grill/vasp/makefile.pd-linux
new file mode 100644
index 00000000..8fcb7526
--- /dev/null
+++ b/externals/grill/vasp/makefile.pd-linux
@@ -0,0 +1,81 @@
+# VASP - vector assembling vector processor
+# Copyright (c)2002 Thomas Grill (xovo@gmx.net)
+#
+# Makefile for gcc @ linux
+#
+# usage:
+# to build run "make -f makefile.pd-linux"
+# to install (as root), do "make -f makefile.pd-linux install"
+# to install help, do "make -f makefile.pd-linux install-help"
+#
+
+include config-pd-linux.txt
+
+FLEXTLIB=$(FLEXTPATH)/flext_t.a
+
+# compiler stuff
+INCLUDES=$(PDPATH)
+FLAGS=-DPD -DFLEXT_THREADS
+CFLAGS=-O6 -mcpu=pentiumpro -fmove-all-movables -frerun-loop-opt -finline-functions # -funroll-loops
+#CFLAGS=-O6 -mcpu=pentium3 -msse -mfpmath=sse -fmove-all-movables -frerun-loop-opt -finline-functions # -funroll-loops
+
+LIBS=m
+
+# ----------------------------------------------
+# the rest can stay untouched
+# ----------------------------------------------
+
+NAME=vasp
+SRCDIR=source
+
+include make-files.txt
+
+MAKEFILE=makefile.pd-linux
+TARGET=$(TARGDIR)/$(NAME).pd_linux
+
+
+# default target
+all: $(TARGDIR) $(TARGET)
+
+$(patsubst %,$(SRCDIR)/%,$(SRCS)): $(patsubst %,$(SRCDIR)/%,$(HDRS)) $(MAKEFILE)
+ touch $(patsubst %,$(SRCDIR)/%,$(SRCS))
+
+$(TARGDIR):
+ mkdir $(TARGDIR)
+
+$(TARGDIR)/%.o : $(SRCDIR)/%.cpp
+ $(CXX) -c $(CFLAGS) $(FLAGS) $(patsubst %,-I%,$(INCLUDES) $(FLEXTPATH)) $< -o $@
+
+$(TARGET) : $(patsubst %.cpp,$(TARGDIR)/%.o,$(SRCS)) $(FLEXTLIB)
+ $(CXX) $(LDFLAGS) -shared $^ $(patsubst %,-l%,$(LIBS)) -o $@
+ strip --strip-unneeded $@
+ chmod 755 $@
+
+
+$(INSTDIR):
+ mkdir $(INSTDIR)
+
+$(INSTDIR)/vasp: $(INSTDIR)
+ mkdir $(INSTDIR)/vasp
+
+install:: $(INSTDIR)/vasp
+
+install:: $(TARGET) pd
+ cp -R $^ $(INSTDIR)/vasp
+# chown -R root.root $(INSTDIR)/vasp
+
+
+$(HELPDIR)/vasp:
+ mkdir $(HELPDIR)/vasp
+
+install-help:: $(HELPDIR)/vasp
+
+install-help:: ./pd-help
+ cp $^/*.* $(HELPDIR)/vasp
+# chown -R root.root $(HELPDIR)/vasp
+
+
+.PHONY: clean
+clean:
+ rm -f $(TARGDIR)/*.o $(TARGET)
+
diff --git a/externals/grill/vasp/makefile.pd-msvc b/externals/grill/vasp/makefile.pd-msvc
new file mode 100644
index 00000000..349900f5
--- /dev/null
+++ b/externals/grill/vasp/makefile.pd-msvc
@@ -0,0 +1,58 @@
+# VASP - vector assembling signal processor
+# Copyright (C) 2002 Thomas Grill (xovo@gmx.net)
+#
+# Makefile for MSVC++ 6
+#
+# usage:
+# to build run "make -f makefile.pd-msvc"
+#
+
+!include config-pd-msvc.txt
+
+# includes
+INCPATH=/I"$(MSVCPATH)\include" /I"$(PDPATH)\src" /I"$(FLEXTPATH)"
+LIBPATH=/LIBPATH:"$(MSVCPATH)\lib" /LIBPATH:"$(PDPATH)\bin" /LIBPATH:"$(FLEXTPATH)"
+LIBS=pd.lib pthreadVC.lib flext_t-pdwin.lib
+
+# compiler definitions and flags
+DEFS=/DPD /DNT /DFLEXT_THREADS
+
+CFLAGS=/GR /GX- /GD /G6 /Ox /MT
+
+# the rest can stay untouched
+# ----------------------------------------------
+
+NAME=vasp
+
+DIR=source
+
+!include make-files.txt
+
+
+all: $(OUTPATH) $(OUTPATH)\$(NAME).dll
+
+OBJS= $(SRCS:.cpp=.obj)
+
+# remove build
+clean:
+ -del /s /q $(OUTPATH) > nul
+ rmdir $(OUTPATH)
+
+$(OUTPATH):
+ -mkdir $(OUTPATH)
+
+# bad tricks here... the obj's are phantom files... no real make
+
+{$(DIR)}.cpp.obj:
+ cl /c /LD $(CFLAGS) $(DEFS) $(INCPATH) $** /Fo$(OUTPATH)\$@
+
+$(OUTPATH)\$(NAME).dll: $(OBJS)
+ cd $(OUTPATH)
+ link /DLL /out:$(NAME).dll /INCREMENTAL:NO $** $(LIBS) $(LIBPATH)
+ @-del *.exp
+ @-del *.lib
+ cd ..
+!ifdef INSTPATH
+ @-if not exist $(INSTPATH) mkdir $(INSTPATH)
+ copy $@ $(INSTPATH) > nul
+!endif
diff --git a/externals/grill/vasp/mixfft.txt b/externals/grill/vasp/mixfft.txt
new file mode 100644
index 00000000..03262e52
--- /dev/null
+++ b/externals/grill/vasp/mixfft.txt
@@ -0,0 +1,85 @@
+
+ Arbitrary Length FFT
+ ------------------------------------------------------------------------
+ NOTE : This is copyrighted material, NOT public domain. See below.
+ ------------------------------------------------------------------------
+ Contents:
+ This packet contains the C source for a mixed-radix FFT routine.
+ It performs a fast discrete Fourier transform (FFT) of a complex
+ sequence, x, of an arbitrary length, n. The output, y, is also a
+ complex sequence of length n.
+
+ y[k] = sum(x[m]*exp(-i*2*pi*k*m/n), m=0..(n-1)), k=0,...,(n-1)
+
+ The largest prime factor of n must be less than or equal to the
+ constant, maxPrimeFactor defined in mixfft.c. The input/output
+ variables are each stored in two arrays comprising the real part
+ and the imaginary part respectively.
+
+ The routine is accompanied by a demo program, fftbench.c, that
+ demonstrates the numerical capabilities. It measures the execution
+ time as well. If you wish to test the capabilities of another FFT
+ routine, the fftbench.c is easy to modify.
+ ------------------------------------------------------------------------
+ Filelist:
+ mixfft.c 21.120 001030 The C source for the mixed-radix FFT.
+ fftbench.c 8.724 001030 The C source for FFT benchmark program.
+ fftbench.exe 62.976 001030 The PC executable.
+ readme.txt This file.
+ ------------------------------------------------------------------------
+ Platforms:
+
+ PC:
+ The included fftbench.exe was generated using the Microsoft Visual
+ C++ compiler with the following compile options:
+ /nologo /Gs /G2 /W4 /AH /Ox /D "NDEBUG" /D "_DOS" /FR
+ It was tested on a 50MHz 486DX. Please refer to fftbench.c for some
+ benchmarks. (jjn, March 1996)
+
+ Other:
+ Your experience with other platforms are warmly welcomed. Please
+ e-mail me.
+ ------------------------------------------------------------------------
+ Conditions:
+ The source code in this packet is copyrighted material.
+
+ Non-commercial use of the source code is free.
+
+ A $100 fee must be paid if used commercially. Please contact me at
+ jjn@get2net.dk and register your copy. The $100 fee includes
+ up to one hour of assistance related to your use of the code. A
+ trial period of 14 days is allowed.
+
+ If the code is used for professional (paid) research and development
+ for non-profit organisations like universities a reduced fee of $20
+ must be paid.
+
+ The commercial license allows you to include the compiled code in a
+ product or to use the code on a regular basis. You are however NOT
+ allowed to sell the source code.
+
+ Distribution of the complete unaltered package, including this
+ file, is free. This includes commercial CD's.
+ ------------------------------------------------------------------------
+ Author:
+ Jens Joergen Nielsen For non-commercial use only.
+ Bakkehusene 54 A $100 fee must be paid if used
+ 2970 Hoersholm commercially. Please contact.
+ DENMARK
+
+ mailto:jjn@get2net.dk All rights reserved. October 2000.
+
+ Check my homepage for updates and FAQ's http://home.get2net.dk/jjn
+ ------------------------------------------------------------------------
+ Release notes:
+ V.0.1 950301 Initial MIXFFT release.
+ V.0.3 960317 Input/output variables have separate arrays for
+ real and imag part. The speed of prime factors
+ larger than 7 is more than doubled.
+ V.0.4 980103 e-mail address changed.
+ V.0.5 001030 Memory allocation in FFTBench changed, now calloc
+ is used. Error reporting when primefactor is
+ larger than maxPrimeFactor has been corrected.
+
+
+ ------------------------------------------------------------------------
diff --git a/externals/grill/vasp/readme.txt b/externals/grill/vasp/readme.txt
new file mode 100644
index 00000000..3819e7d8
--- /dev/null
+++ b/externals/grill/vasp/readme.txt
@@ -0,0 +1,93 @@
+VASP modular - vector assembling signal processor
+Object library for Max/MSP and PD
+
+Copyright (c) 2002 Thomas Grill (xovo@gmx.net)
+For information on usage and redistribution, and for a DISCLAIMER OF ALL
+WARRANTIES, see the file, "license.txt," in this distribution.
+
+Donations for further development of the package are highly appreciated.
+
+----------------------------------------------------------------------------
+
+DOWNLOAD:
+=========
+
+http://www.parasitaere-kapazitaeten.net/vasp
+
+----------------------------------------------------------------------------
+
+Package files:
+- readme.txt: this one
+- gpl.txt,license.txt,mixfft.txt: license stuff
+- changes.txt,todo.txt: additional info
+- pd-help/*: VASP help for PD
+- pd/*: VASP abstractions and documentation for PD
+- max-help/*: VASP help for Max/MSP (not present)
+- maxmsp/*: VASP abstractions for Max/MSP
+- config-*,build-*,makefile.*,*.cw: Build
+- source/*: VASP sources
+
+----------------------------------------------------------------------------
+
+GOALS/FEATURES:
+===============
+
+VASP is a package for PD or MaxMSP consisting of a number of externals extending
+these systems with functions for non-realtime array-based audio data processing.
+VASP is capable of working in the background, therefore not influencing eventual
+dsp signal processing.
+
+----------------------------------------------------------------------------
+
+USAGE:
+======
+
+IMPORTANT INFORMATION for all PD users:
+---------------------------------------
+
+For VASP and its documentation to work properly, you have to specify a
+PD command line like
+
+Linux/OSX: pd -path /usr/local/lib/pd/extra/vasp/pd -lib vasp/vasp
+Windows: pd -path c:\audio\pd\extra\vasp\pd -lib vasp\vasp
+
+
+The main help file "VASP-HELP.pd" resides in the "pd" sub-folder along with some
+handy abstractions. Every help file is accessible from VASP-HELP.PD and vice versa.
+
+
+IMPORTANT INFORMATION for all MaxMSP users:
+-------------------------------------------
+
+It is advisable to put the vasp object library file into the "max-startup" folder.
+Hence it will be loaded at Max startup.
+If you want alternatively to load the vasp library on demand,
+create a "vasp" object somewhere. The library is then loaded.
+
+If existent, the "max-help" folder should be put into the "max-help" folder of Max/MSP
+and be renamed to "vasp".
+
+----------------------------------------------------------------------------
+
+COMPILATION:
+============
+
+You will need the flext C++ layer for PD and Max/MSP externals.
+see http://www.parasitaere-kapazitaeten.net/ext/flext
+
+
+The package should at least compile (and is tested) with the following compilers:
+
+- PD @ Windows:
+o Microsoft Visual C++ 6: use vasp.dsp or edit "config-pd-msvc.txt" and run "sh build-pd-msvc.sh"
+
+- PD @ linux:
+o GCC: edit "config-pd-linux.txt" and run "sh build-pd-linux.sh"
+
+- PD @ MacOSX:
+o GCC: edit "config-pd-darwin.txt" and run "sh build-pd-darwin.sh"
+
+- Max/MSP @ MacOS9:
+o Metrowerks CodeWarrior V6: edit vasp.cw project and build it
+
+
diff --git a/externals/grill/vasp/todo.txt b/externals/grill/vasp/todo.txt
new file mode 100644
index 00000000..be35393d
--- /dev/null
+++ b/externals/grill/vasp/todo.txt
@@ -0,0 +1,61 @@
+TODO list:
+
+features:
+---------------------
+- introduce attributes!!
+
+- introduce several log levels (for warning posts)
+- grab (and recompose) signals for granular vasp usage
+- vasp~s for realtime-capable vasp objects
+
+- complex power operations - delta phase
+
+- optimize (c)osc with table lookup, phasor with Höldrichs code (in pd)
+
+- how to handle beyond buffer-domain:
+warning, treat as 0, calculate unit operation, loop, mirror on buffer end, stay on last frame
+
+- better algorithm for vasp.fix
+
+- make loops interruptible ("stop" message?)
+- make in place rotation more efficient (use temporary space)
+
+
+objects:
+---------------------
+- wave object for table-lookup oscs.
+- various random distributions for noise
+
+- vasp.window: one should be able to use just a portion of the windowing envelope
+
+- slope: frequency distortion with given exponent
+
+- vasp.trigger object... in PD [t a] is ok, what about Max?
+- vasp.expr
+
+- vasp.state.... current vasp, operation, progress meter
+
+bugs:
+---------------------
+
+
+tests:
+---------------------
+- vasp.size always keeps the data... do we want that? -> flag if yes/no
+- in-place operation (src == dst), test if strides are equal!
+- should frame count always be pre-evaluated (e.g. in vasp.f+ etc. ?)
+- review/change questionable permutation algorithm
+- test DFT objects on strided buffers
+- check for odd remainder frame on symmetric operations!!
+
+premature thoughts:
+---------------------
+- interface to scripting language (python)
+
+
+documentation:
+---------------------
+- have all the objects written in their full names
+- no special characters!
+
+
diff --git a/externals/grill/vasp/vasp.cw b/externals/grill/vasp/vasp.cw
new file mode 100644
index 00000000..9b2ec610
--- /dev/null
+++ b/externals/grill/vasp/vasp.cw
Binary files differ
diff --git a/externals/grill/vasp/vasp.doxy b/externals/grill/vasp/vasp.doxy
new file mode 100644
index 00000000..38fb121b
--- /dev/null
+++ b/externals/grill/vasp/vasp.doxy
@@ -0,0 +1,188 @@
+# Doxyfile 1.2.13-20020210
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME = "vasp modular"
+PROJECT_NUMBER = 0.0.8pre8
+OUTPUT_DIRECTORY = f:/prog/max/vasp/doc/
+OUTPUT_LANGUAGE = English
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = NO
+EXTRACT_STATIC = YES
+EXTRACT_LOCAL_CLASSES = YES
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+INTERNAL_DOCS = YES
+STRIP_CODE_COMMENTS = YES
+CASE_SENSE_NAMES = YES
+SHORT_NAMES = NO
+HIDE_SCOPE_NAMES = NO
+VERBATIM_HEADERS = YES
+SHOW_INCLUDE_FILES = YES
+JAVADOC_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP = NO
+INHERIT_DOCS = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+DISTRIBUTE_GROUP_DOC = NO
+TAB_SIZE = 8
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+ALIASES =
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+OPTIMIZE_OUTPUT_FOR_C = NO
+OPTIMIZE_OUTPUT_JAVA = NO
+SHOW_USED_FILES = YES
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = f:/prog/max/vasp/source/
+FILE_PATTERNS =
+RECURSIVE = NO
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS =
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = YES
+INLINE_SOURCES = NO
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+BINARY_TOC = NO
+TOC_EXPAND = NO
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = NO
+TREEVIEW_WIDTH = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = NO
+USE_PDFLATEX = NO
+LATEX_BATCHMODE = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED =
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = YES
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = NO
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+TEMPLATE_RELATIONS = YES
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+GRAPHICAL_HIERARCHY = YES
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+MAX_DOT_GRAPH_WIDTH = 1024
+MAX_DOT_GRAPH_HEIGHT = 1024
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
+CGI_NAME = search.cgi
+CGI_URL =
+DOC_URL =
+DOC_ABSPATH =
+BIN_ABSPATH = /usr/local/bin/
+EXT_DOC_PATHS =
diff --git a/externals/grill/vasp/vasp.dsp b/externals/grill/vasp/vasp.dsp
new file mode 100644
index 00000000..3c586d6b
--- /dev/null
+++ b/externals/grill/vasp/vasp.dsp
@@ -0,0 +1,484 @@
+# Microsoft Developer Studio Project File - Name="vasp" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** NICHT BEARBEITEN **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=vasp - Win32 Threads Debug
+!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
+!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
+!MESSAGE
+!MESSAGE NMAKE /f "vasp.mak".
+!MESSAGE
+!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
+!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
+!MESSAGE
+!MESSAGE NMAKE /f "vasp.mak" CFG="vasp - Win32 Threads Debug"
+!MESSAGE
+!MESSAGE Für die Konfiguration stehen zur Auswahl:
+!MESSAGE
+!MESSAGE "vasp - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "vasp - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "vasp - Win32 Threads Debug" (basierend auf "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "vasp - Win32 Threads Release" (basierend auf "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName "max/vasp/source"
+# PROP Scc_LocalPath "."
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "vasp - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "pd-msvc\r"
+# PROP Intermediate_Dir "pd-msvc\r"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VASP_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /G6 /W3 /O2 /Ob2 /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PD" /D "NT" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0xc07 /d "NDEBUG"
+# ADD RSC /l 0xc07 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib pthreadVC.lib pd.lib ..\flext\pd-msvc\flext-pdwin.lib /nologo /dll /machine:I386 /libpath:"c:\programme\audio\pd\bin"
+# SUBTRACT LINK32 /debug
+
+!ELSEIF "$(CFG)" == "vasp - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "pd-msvc\d"
+# PROP Intermediate_Dir "pd-msvc\d"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "VASP_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /ZI /Od /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PD" /D "NT" /D "VASP_COMPACT" /FR /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0xc07 /d "_DEBUG"
+# ADD RSC /l 0xc07 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib pthreadVC.lib pd.lib ..\flext\pd-msvc\flext_d-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"c:\programme\audio\pd\bin"
+
+!ELSEIF "$(CFG)" == "vasp - Win32 Threads Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "vasp___Win32_Threads_Debug"
+# PROP BASE Intermediate_Dir "vasp___Win32_Threads_Debug"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "pd-msvc\td"
+# PROP Intermediate_Dir "pd-msvc\td"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PD" /D "NT" /FR /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /ZI /Od /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PD" /D "NT" /D "FLEXT_THREADS" /D "VASP_COMPACT" /FR /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0xc07 /d "_DEBUG"
+# ADD RSC /l 0xc07 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib pthreadVC.lib pd.lib ..\flext\msvc-debug\flext-t-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"c:\programme\audio\pd\bin"
+# ADD LINK32 kernel32.lib user32.lib pthreadVC.lib pd.lib ..\flext\pd-msvc\flext_td-pdwin.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /libpath:"c:\programme\audio\pd\bin"
+
+!ELSEIF "$(CFG)" == "vasp - Win32 Threads Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "vasp___Win32_Threads_Release"
+# PROP BASE Intermediate_Dir "vasp___Win32_Threads_Release"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "pd-msvc\t"
+# PROP Intermediate_Dir "pd-msvc\t"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GR /GX /O2 /Ob2 /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PD" /D "NT" /YX /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /O2 /Ob2 /I "c:\programme\audio\pd\src" /I "f:\prog\max\flext\source" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PD" /D "NT" /D "FLEXT_THREADS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0xc07 /d "NDEBUG"
+# ADD RSC /l 0xc07 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib pthreadVC.lib pd.lib ..\flext\msvc-debug\flext-t-pdwin.lib /nologo /dll /machine:I386 /libpath:"c:\programme\audio\pd\bin"
+# SUBTRACT BASE LINK32 /debug
+# ADD LINK32 kernel32.lib user32.lib pthreadVC.lib pd.lib ..\flext\pd-msvc\flext_t-pdwin.lib /nologo /dll /machine:I386 /out:"pd-msvc/vasp.dll" /libpath:"c:\programme\audio\pd\bin"
+# SUBTRACT LINK32 /debug
+
+!ENDIF
+
+# Begin Target
+
+# Name "vasp - Win32 Release"
+# Name "vasp - Win32 Debug"
+# Name "vasp - Win32 Threads Debug"
+# Name "vasp - Win32 Threads Release"
+# Begin Group "doc"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=changes.txt
+# End Source File
+# Begin Source File
+
+SOURCE=license.txt
+# End Source File
+# Begin Source File
+
+SOURCE=readme.txt
+# End Source File
+# Begin Source File
+
+SOURCE=todo.txt
+# End Source File
+# End Group
+# Begin Group "vasp"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=source\arg.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\arg.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\buflib.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\buflib.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\classes.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\classes.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\env.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\env.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\util.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\util.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\vasp.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\vasp.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\vbuffer.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\vbuffer.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\vecblk.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\vecblk.h
+# End Source File
+# End Group
+# Begin Group "ops"
+
+# PROP Default_Filter ""
+# Begin Group "funcs"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=source\ops_arith.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_arith.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_assign.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_assign.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_carith.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_carith.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_cmp.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_cmp.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_cplx.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_cplx.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_dft.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_dft.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_feature.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_feature.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_flt.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_flt.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_gate.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_gen.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_gen.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_qminmax.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_rearr.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_rearr.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_resmp.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_resmp.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_search.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_search.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_trnsc.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_trnsc.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_wnd.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops_wnd.h
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=source\opbase.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\opbase.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\opdefs.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\oploop.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\opparam.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\opparam.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\oppermute.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\ops.h
+# End Source File
+# Begin Source File
+
+SOURCE=source\opvecs.cpp
+# End Source File
+# End Group
+# Begin Group "dft"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=source\mixfft.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\rdx2fft.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\rvfft.cpp
+# End Source File
+# End Group
+# Begin Group "objs"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=source\obj_chns.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_frames.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_imm.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_offs.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_part.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_peaks.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_q.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_radio.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_size.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_split.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_sync.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_vasp.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\obj_vecs.cpp
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=source\main.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=source\main.h
+# End Source File
+# End Target
+# End Project