FLASH_SA_FS.c File Reference

(r)


Functions

FLA_Error FLASH_SA_FS (FLA_Obj L, FLA_Obj D, FLA_Obj p, FLA_Obj C, FLA_Obj E, dim_t nb_alg)

Function Documentation

FLA_Error FLASH_SA_FS ( FLA_Obj  L,
FLA_Obj  D,
FLA_Obj  p,
FLA_Obj  C,
FLA_Obj  E,
dim_t  nb_alg 
)

References FLA_Cont_with_1x3_to_1x2(), FLA_Obj_width(), FLA_Part_1x2(), FLA_Repart_1x2_to_1x3(), FLA_SA_FS_task(), and FLASH_Queue_get_enabled().

Referenced by FLASH_SA_LU().

00038 {
00039    FLA_Obj CL,    CR,       C0,  C1,  C2;
00040 
00041    FLA_Obj EL,    ER,       E0,  E1,  E2;
00042 
00043    FLA_Part_1x2( C,    &CL,  &CR,      0, FLA_LEFT );
00044 
00045    FLA_Part_1x2( E,    &EL,  &ER,      0, FLA_LEFT );
00046 
00047    while ( FLA_Obj_width( CL ) < FLA_Obj_width( C ) )
00048    {
00049       FLA_Repart_1x2_to_1x3( CL,  /**/ CR,        &C0, /**/ &C1, &C2,
00050                              1, FLA_RIGHT );
00051 
00052       FLA_Repart_1x2_to_1x3( EL,  /**/ ER,        &E0, /**/ &E1, &E2,
00053                              1, FLA_RIGHT );
00054 
00055       /*------------------------------------------------------------*/
00056 
00057       if ( FLASH_Queue_get_enabled( ) )
00058       {
00059          // Enqueue
00060          ENQUEUE_FLASH_SA_FS( *FLASH_OBJ_PTR_AT( L ),
00061                               *FLASH_OBJ_PTR_AT( D ),
00062                               *FLASH_OBJ_PTR_AT( p ),
00063                               *FLASH_OBJ_PTR_AT( C1 ),
00064                               *FLASH_OBJ_PTR_AT( E1 ),
00065                               nb_alg,
00066                               NULL );
00067       }
00068       else
00069       {
00070          // Execute leaf
00071          FLA_SA_FS_task( *FLASH_OBJ_PTR_AT( L ),
00072                          *FLASH_OBJ_PTR_AT( D ),
00073                          *FLASH_OBJ_PTR_AT( p ),
00074                          *FLASH_OBJ_PTR_AT( C1 ),
00075                          *FLASH_OBJ_PTR_AT( E1 ),
00076                          nb_alg,
00077                          NULL );
00078       }
00079       
00080       /*------------------------------------------------------------*/
00081 
00082       FLA_Cont_with_1x3_to_1x2( &CL,  /**/ &CR,        C0, C1, /**/ C2,
00083                                 FLA_LEFT );
00084 
00085       FLA_Cont_with_1x3_to_1x2( &EL,  /**/ &ER,        E0, E1, /**/ E2,
00086                                 FLA_LEFT );
00087    }
00088    
00089    return FLA_SUCCESS;
00090 }


Generated on Mon Jul 6 05:45:56 2009 for libflame by  doxygen 1.5.9