anchor.diff:       TYPE(QuTree), POINTER        :: Quad00,Quad01,Quad10,Quad11
        REAL(DOUBLE), DIMENSION(:,:), ALLOCATABLE :: Blok
     END TYPE QuTree
  -
  +  !
  +  TYPE SpAMM_cubes
  +     TYPE(SpAMM_cubes), POINTER  :: Next
  +     INTEGER                     :: Hash
  +     REAL(DOUBLE)                :: Bound
  +     INTEGER,     DIMENSION(3,2) :: Box
  +  END TYPE SpAMM_cubes
  +  !
  +  !----------------------------------------------------------------
  +  REAL(DOUBLE)       :: SpAMM_tolerance,SpAMM_multiplies
  +  INTEGER            :: SpAMM_tiles,    SpAMM_levels,     SpAMM_quadcount
  +  TYPE(SpAMM_cubes),POINTER :: SpAMM_stream
  +  INTEGER, PARAMETER :: BLOCK_SIZE=2
  +  !----------------------------------------------------------------
  +  !
   CONTAINS
  -
  +  !
     FUNCTION Dense2Quad(A) RESULT(qA)
       REAL(DOUBLE),DIMENSION(:,:) :: A
       TYPE(QuTree),POINTER        :: qA
  
positive.code:   !
    qA=>Dense2Quad(A)
    qB=>Dense2Quad(B)
    qC=>SpAMM(qA,qB,SpAMM_tolerance)
  
    C2=Quad2Dense(qC)
    C1=MATMUL(A,B)
  
negative.code: PROGRAM SpAMM_TEST
    USE SpAMM_TYPES
    IMPLICIT NONE
    INTEGER           ::  L,M,N_OLD,N,I,J,K,II,JJ
    REAL(DOUBLE),ALLOCATABLE, DIMENSION(:,:) ::  A, B, C1,C2,CDiff,A_NOPADDING
    TYPE(QuTree),POINTER  :: qA,qB,qC
    TYPE(SpAMM_cubes),POINTER  :: Stream
    REAL(DOUBLE)          :: CNorm,CDiffNorm,CErrBound,CElementErr
    CHARACTER *100        :: Buffer
  
  