Functions

Stage: Challenge Level: Challenge Level:1

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) :-

Sequence generation
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.

Published .