A <- matrix( c(1:48),ncol = 16 ); 
B <- matrix( c(1:80),ncol = 16 ); 

mutual <- function(delta, a, FUN = "*"){
  delta  <- as.matrix( delta );
  a      <- as.matrix( a     );
  result <- matrix( outer(delta, a, FUN), nrow = nrow(delta) )
  return( result )
}
# > A
#      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
# [1,]    1    4    7   10   13   16   19   22   25    28    31    34    37    40    43    46
# [2,]    2    5    8   11   14   17   20   23   26    29    32    35    38    41    44    47
# [3,]    3    6    9   12   15   18   21   24   27    30    33    36    39    42    45    48
# > B
#      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
# [1,]    1    6   11   16   21   26   31   36   41    46    51    56    61    66    71    76
# [2,]    2    7   12   17   22   27   32   37   42    47    52    57    62    67    72    77
# [3,]    3    8   13   18   23   28   33   38   43    48    53    58    63    68    73    78
# [4,]    4    9   14   19   24   29   34   39   44    49    54    59    64    69    74    79
# [5,]    5   10   15   20   25   30   35   40   45    50    55    60    65    70    75    80
lapply( 1:ncol(A) , function(x) mutual( A[,x],B[,x] ) )
# > lapply( 1:ncol(A) , function(x) mutual( A[,x],B[,x] ) )
# [[1]]
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    1    2    3    4    5
# [2,]    2    4    6    8   10
# [3,]    3    6    9   12   15
# 
# [[2]]
#      [,1] [,2] [,3] [,4] [,5]
# [1,]   24   28   32   36   40
# [2,]   30   35   40   45   50
# [3,]   36   42   48   54   60
# 
# [[3]]
#      [,1] [,2] [,3] [,4] [,5]
# [1,]   77   84   91   98  105
# [2,]   88   96  104  112  120
# [3,]   99  108  117  126  135   ......

