ip_lib.c
/*
 * posiziona il contenuto della matrice source nella matrice dest, partendo dalla posizione specificata
 * per tutti i canali di source (massimo il numero di canali di dest) posiziona la cella 0,0 del canale di source alla posizione row,col del canale di dest
 * copia il contenuto di source fino a raggiungere il limite del canale di dest, e soltanto se row,col sono indici validi per la matrice dest
 * */
posiziona il contenuto della matrice source nella matrice dest, partendo dalla posizione specificata
per tutti i canali di source (massimo il numero di canali di dest) posiziona la cella 0,0 del canale di source alla posizione row,col del canale di dest
copia il contenuto di source fino a raggiungere il limite del canale di dest, e soltanto se row,col sono indici validi per la matrice dest
posiziona il contenuto della matrice source nella matrice dest partendo dalla posizione specificata per tutti i canali di source ( massimo il numero di canali di dest ) posiziona la cella 0 0 del canale di source alla posizione row col del canale di dest copia il contenuto di source fino a raggiungere il limite del canale di dest e soltanto se row col sono indici validi per la matrice dest
void ip_mat_puts(ip_mat *dest, ip_mat const *source, unsigned int row, unsigned int col, int do_compute_stats)
{
    not_null_ip_mat(dest);
    not_null_ip_mat(source);
    if (row < dest->h && col < dest->w)
    {
        unsigned int k;
        for (k = 0; k < dest->k && k < source->k; k++)
            channel_puts(get_channel(dest, k), get_channel(source, k), row, col);
        if (do_compute_stats)
            compute_stats(dest);
    }
}
void ip_mat_puts ( ip_mat * dest , ip_mat const * source , unsigned int row , unsigned int col , int do_compute_stats ) { not_null_ip_mat ( dest ) ; not_null_ip_mat ( source ) ; if ( row < dest -> h && col < dest -> w ) { unsigned int k ; for ( k = 0 ; k < dest -> k && k < source -> k ; k ++ ) channel_puts ( get_channel ( dest , k ) , get_channel ( source , k ) , row , col ) ; if ( do_compute_stats ) compute_stats ( dest ) ; } }
posiziona il contenuto della matrice source nella matrice dest, partendo dalla posizione specificata
 per tutti i canali di source (massimo il numero di canali di dest) posiziona la cella 0,0 del canale di source alla posizione row,col del canale di dest
 copia il contenuto di source fino a raggiungere il limite del canale di dest, e soltanto se row,col sono indici validi per la matrice dest
posiziona il contenuto della matrice source nella matrice dest partendo dalla posizione specificata per tutti i canali di source ( massimo il numero di canali di dest ) posiziona la cella 0 0 del canale di source alla posizione row col del canale di dest copia il contenuto di source fino a raggiungere il limite del canale di dest e soltanto se row col sono indici validi per la matrice dest
/* ripeti per tutti i canali di source (massimo dest->k) */ /* se richiesto ricalcola gli stats */