The Function Machine software is in development here:
http://nrich.maths.org/DataFlow/DataFlow.html
Since Release 9, you can now upload saved example files and create
a hyperlink to the Number Plumber application running that example.
Take care to use
File
upload rather than
Upload
XML when uploading an example. Here are some sample
links:
/DataFlow/DataFlow.html?config=/content/id/6866/GuessFunction1.xml
/DataFlow/DataFlow.html?config=/content/id/6866/fibonacci.xml
/DataFlow/DataFlow.html?config=/content/id/6866/completingSquare.xml
/DataFlow/DataFlow.html?config=/content/id/6866/eipi.xml
You would of course use a more sensibly named link such as:
Can you
guess the rule here?
Release History
Release 1:
Click on Login without entering a password in order to configure
Operations, Numbers and Inputs. Connect operations together by
dragging from the spot under each operation.
Reset and Step in the Control Panel then mostly work as
intended.
Quite a lot still to come:
graph outputs; hide/reveal; show expressions; some very basic
simplifications, load and save, more primitives, more
testing.
Release 2:
You can track changes on our source control system (but they are
written in ultimate geeklish) at
DataFlow.git and
MMP.git. I don't really epect anyone to do this, but it might
convince you that my nose is to the grindstone on it - just look at
the logs...
Additions are:
Draggable inputs and outputs - changing to allow multiple functions
soon.
Added lots of Unary functions - negate, square, squareroot, cube,
cuberoot, trig, inverse trig, hyperbolics, exp and ln.
Draggable Functions now appear as blank templates rather than
prefilled with numbers.
Fixed the crazy behaviour bug we saw in the demo.
Release 3:
Main aim of this release was to get the animation to colour things
according to what function they feed - while allowing multiple
functions, disallowing loopback, disallowing multivalue functions,
and limiting the number of inputs to two. For test purposes, this
release has 3 result boxes so you can build 3 functions. The
default grey colour identifies boxes which don't feed into any
function. You'll also notice that the domain variables in the
result boxes change according to what the inputs are called.
Release 4:
Do not mix colours error message
Optimised dragging. It had become slow when dataflows were
large.
Added decimal input.
Added feedback input. (Works but needs animated evaluation for
clarity)
Improved layering
Editable input variable names at configuration time and also on
stage
Release 5:
Sorted out the reset and run button so evaluations complete from
top to bottom. Evaluations are now animated with adjustable speed,
and can be paused with the space bar. Current evaluation is
highlighted and a marble drops.
Added feedback input and a 'Drop & Catch' box. The latter can
be used to access output values before the current one. It gets its
name from the fact that every other box catches before dropping.
Drop and Catch drops its last result before catching the new one.
Remember, if you use either of these operations you are creating
sequences rather than functions, and that's really another
story...
Removed Password and renamed the Login Panel. Added some clear
buttons and generally tidied up the user interface so everything
that's there works. Everything, that is, except hiding,... and the
disabled Save and Load buttons. Actually, those do work really well
as disabled buttons ;).To understand feedback and drop and catch,
try this (you'll need to press run twice before the first result
emerges) :-

Release 6
First release that includes point plotting. Incomplete, but
working. Input titles now double as drop buttons. Other things that
can trigger a drop are dragging a number onto a Drop Input, and
hitting enter on a decimal input. Plots happen when a result hits
the output. Functions of two variables only plot as functions of
the first variable at present. If you have multiple functions they
are all plotted on the same graph.
Release 7
Bug fixes: inputs displayed in Results are now evaluated. Graph
axes now go through origin if it's on screen. Drop Numbers save and
load. Operations on stage save and load but don't connect
yet.
Release 8
Load and Save Examples should now work.
Release 9
Delete and Hide buttons on mouse over. Complete save and reload of
screen state including top-right panel contents and state. Split
out the sequencing operations. Fixed bugs in stepper inputs. Added
random decimal input. Reworked inputs and outputs panels.
Fixed window sizing issues - inputs and outputs now float to
optimal position on creation. Added FullScreen. Added special
numbers e, pi, i. Tested complex evaluations. Added load from URL
for site inclusion. Allowing drop evaluations from constants, not
just inputs. Added skin for $x^y$. Increased function colour count.
Added function definitions, reuse, save and load.
Release 10
Has been coming out in fits and starts... You may have seen the
precision and radian/degree choices already. Finishing off with
some bug fixes. Purple load button misplacements in input and
outputflows should be resolved now. Spacebar pause has been
disabled because it interfered with ordinary text input. Hidden
flows are now more blurry and more transparent - so they no longer
obscure clear text flows that they feed.
Release 11
Adds a Results Table panel. This works with both single and double
input mappings.(Graphs only work with single inputs at the moment;
neither work with complex numbers as yet). It respects the hidden
status of inputs and outputs. If either are hidden they will show
as a ? in the table. Click on a column header to sort the table
according to that column.
Release 12
Fixes a bug in Editable Text that showed up when multiple files
were loaded into the same run.