Changeset 3

Show
Ignore:
Timestamp:
02/16/08 15:17:09 (2 years ago)
Author:
thesz
Message:

Fixed 'send back in time' bug in replicator.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • hiersort/tests/heat1d/Heat1DProg.hs

    r1 r3  
    3939heat1DGenerator size = [b1,b2]++is 
    4040        where 
    41                 is = [ item i (ReplX $ toEnum i) | i <- [2..size-1]] 
    42                 item i inp = Msg { 
    43                                  msgOrder = oIndexes GWrk (mkorder [1,i])++oNode node 
     41                is = [ item 0 i (ReplX $ toEnum i) | i <- [2..size-1]] 
     42                item it i inp = Msg { 
     43                                 msgOrder = oIndexes GWrk (mkorder [it,i])++oNode node 
    4444                                ,msgModuleAddr = tokenToMod i 
    4545                                ,msgArity = inparity node 
     
    4848                        where 
    4949                                node = inpnode inp 
    50                 b1 = item 1 (B1X 0) 
    51                 b2 = item size (B2X 0) 
     50                b1 = item 1 1 (B1X 0) 
     51                b2 = item 1 size (B2X 0) 
    5252 
    5353heat1DMatcher nit size pair order = procp $ case pair of 
     
    7171                B1 
    7272        |       B2 
    73         |       Repl 
    7473        |       S1 
    7574        |       S2 
     75        |       Repl 
    7676        |       Host 
    7777        deriving (Eq,Ord,Show) 
     
    8080                B1X     Double 
    8181        |       B2X     Double 
    82         |       ReplX   Double 
    8382        |       S1X     Double 
    8483        |       S1Y     Double 
    8584        |       S2X     Double 
    8685        |       S2Y     Double 
     86        |       ReplX   Double 
    8787        |       HostX   Double 
    8888        deriving (Eq,Ord,Show) 
     
    9191        B1X _ -> B1 
    9292        B2X _ -> B2 
    93         ReplX _ -> Repl 
    9493        S1X _ -> S1 
    9594        S1Y _ -> S1 
    9695        S2X _ -> S2 
    9796        S2Y _ -> S2 
     97        ReplX _ -> Repl 
    9898        HostX _ -> Host 
    9999 
     
    141141 
    142142nodeRepl n nit x ix@[_,iter,i] = do 
    143         c <- igt iter nit 
     143        c <- ige iter nit 
    144144        aif c 
    145145                (do 
     
    147147                ) 
    148148                (do 
     149                        nextIter <- iadd iter 1 
    149150                        cge2 <- igt i 2 
    150151                        aif cge2 
    151152                                (do 
    152153                                        i1 <- isub i 1 
    153                                         sendval [iter,i1] S1Y x 
     154                                        sendval [nextIter,i1] S1Y x 
    154155                                ) 
    155156                                (return ()) 
    156                         sendval [iter,i] S2Y x 
     157                        sendval [nextIter,i] S2Y x 
    157158                        cltn1 <- ilt i (n-1)    -- n-1 is basically constant, so we CAN. 
    158159                        aif cltn1 
    159160                                (do 
    160161                                        i1 <- iadd i 1 
    161                                         sendval [iter,i1] S1X x 
     162                                        sendval [nextIter,i1] S1X x 
    162163                                ) 
    163164                                (return ()) 
     
    172173        m <- fmul y 0.5 
    173174        s <- fadd x m 
    174       iter1 <- iadd iter 1 
    175         sendval [iter1,i] ReplX s 
     175--    iter1 <- iadd iter 1 
     176        sendval [iter,i] ReplX s