001 package com.croftsoft.apps.insight; 002 003 public class Matrix_Array { 004 ////////////////////////////////////////////////////////////////////// 005 // Matrix_Array.java v0.0 (C) Copyright 1996 David Wallace Croft. 006 // 1996-09-02 007 ////////////////////////////////////////////////////////////////////// 008 009 Matrix [ ] m; // matrices 010 011 public Matrix_Array ( int matrices_count ) { 012 ////////////////////////////////////////////////////////////////////// 013 // Constructor method 014 ////////////////////////////////////////////////////////////////////// 015 this.m = new Matrix [ matrices_count ]; 016 for ( int index_matrix = 0; 017 index_matrix < matrices_count; 018 index_matrix++ ) { 019 this.m [ index_matrix ] = new Matrix ( 1, 1 ); 020 } 021 } 022 023 public Matrix_Array ( Matrix [ ] matrices_array ) { 024 ////////////////////////////////////////////////////////////////////// 025 // Constructor method 026 ////////////////////////////////////////////////////////////////////// 027 this.m = new Matrix [ matrices_array.length ]; 028 for ( int index_matrix = 0; 029 index_matrix < matrices_array.length; 030 index_matrix++ ) { 031 this.m [ index_matrix ] 032 = new Matrix ( matrices_array [ index_matrix ] ); 033 } 034 } 035 036 public Matrix_Array ( Matrix_Array template ) { 037 ////////////////////////////////////////////////////////////////////// 038 // Constructor method 039 ////////////////////////////////////////////////////////////////////// 040 this.m = new Matrix [ template.m.length ]; 041 for ( int index_matrix = 0; 042 index_matrix < template.m.length; 043 index_matrix++ ) { 044 this.m [ index_matrix ] 045 = new Matrix ( template.m [ index_matrix ] ); 046 } 047 } 048 049 public Matrix_Array add ( Matrix_Array addend ) { 050 ////////////////////////////////////////////////////////////////////// 051 if ( this.m.length != addend.m.length ) { 052 throw new ArrayIndexOutOfBoundsException ( 053 "Matrix_Array.add ( Matrix_Array ): arrays mismatched" ); 054 } 055 Matrix_Array new_matrix_array = new Matrix_Array ( this ); 056 for ( int index_matrix = 0; 057 index_matrix < this.m.length; 058 index_matrix++ ) { 059 new_matrix_array.m [ index_matrix ] 060 = this.m [ index_matrix ].add ( addend.m [ index_matrix ] ); 061 } 062 return new_matrix_array; 063 } 064 065 public Matrix_Array multiply ( double factor ) { 066 ////////////////////////////////////////////////////////////////////// 067 Matrix_Array new_matrix_array = new Matrix_Array ( this ); 068 for ( int index_matrix = 0; 069 index_matrix < this.m.length; 070 index_matrix++ ) { 071 new_matrix_array.m [ index_matrix ] 072 = this.m [ index_matrix ].multiply ( factor ); 073 } 074 return new_matrix_array; 075 } 076 077 ////////////////////////////////////////////////////////////////////// 078 ////////////////////////////////////////////////////////////////////// 079 }