
                 perlDL TODO list
                 ================

   'This world, where much is to be done and little to be known.' 
      - Samuel Johnson. Prayers and Meditations. Against inquisitive 
                        and perplexing Thoughts.

   Karl Glazebrook, AAO, 2/Oct/1996. [kgb@aaoepp.aao.gov.au]

"#" = should work now.

SuperHyperCritical:
----
 * A test and a fix for $P() in vaffine.

# * foo(zeroes(float,3))) and foo is defined only for byte doesn't work.

Before 2.0:
----
Ok, what's REALLY needed for 2.0:

#	- hash AND scalar refs.

#	- proper destruction of everything - 
#	  plug memory leaks. Purify, anyone?

	- Perl-level threading. it's not very difficult

	- Matrix handling stuff - slatec does something

	- Compatibility with 1.11 - anyone ?

	- Time benchmarks so we can optimize with proper knowledge
	  of what we are doing

	- EXAMPLES of programming with PDL as well as 
	  programming with PDL::PP.

	- cleanup and interlinking of all documentation,
	  adapting PDL.pod to 2.0. perldl manpage

	- document TFD...

Tidbits
----

* PP: fix phys pointers

* PP: OtherTypes

* PP: Input pars => dims

* copy .pd pod -> .pm for perlindex, Pod::Text etc.

* clean .pd -> .c files

### * FileHandle -> IO::File --- is this really supposed to be so?

* ->setdims followed by ->set_datatype crashes

* PDL::Trans objects, getting parents, etc.

* Index back.

* rvals

* Perl-level threading, use subs with indices etc.


Critical
----

* document ->thread & no null. Document limitations and undefined
  things about the trans system.

* Function buildin: inner(a,b) -> c, inner(a,b,c) work.

* Internal documentation "=for refcard" etc.

* Makefile.PL: remove -OPTIMIZE

* Make PDL::PP and other documentation up to date.

* DProf doesn't work with pdl for some reason.. check.

* Int flag in PDL::PP -> not demand but tmp cast.

Reorganization
------

* Put the tied hash into C to speed thing up.

* Remove the 'pdl' prefix from PDL/Core/*.c
 
System
------

* local $epsilon used for 

* Dataflow + persistence

* overload array lookup with tie(...) ? (Does not
  seem compatible with use of hv_fetch()) etc.

* prototype some functions

* ***************** COMPLEX NUMBERS ******************

* Improve pdl_whichdatatype and PDL::PP so we don't need to do
  stupid interconversions.

* Clean up pdl_converttype and SvPDLV: we could do with a lot less
  pdl_mallocs.

IO
---

* DSA writer/header handling

Functions
----------

* where (COND) {EXPR} - e.g. where ($x>42) { $x = 1/$x } ?

* select (COND) (PDL) - e.g. select ($x>42, $x) select values (output -> 1D)
  (i.e. shrinks PDL) ?

* sort ($x,$y,$z...) - 1D only
   -along some dimensions, by some rules.

* FFT

* Grow list -> (N+1) Dim

* Matrix inverse (via following:)

* linear system solver

* SVD algorithm

* Interpolation/rebinning 

* Projection - extend sum() e.g.: sum($x,1) for along Y axis - 
  also median($x,1)?

* easy extend($image,...) function ?


Graphics
--------

* Karma interface?

* Check outs AIPSVIEW

* Improve 3D

* Nd plots

* VRML interface
