Description
Problem 1. (Sparse Vector ) Use a symbol table of indexvalue pairs to implement a data type called SparseVector that represents an ndimensional sparse vector, storing only the nonzero components of the vector. The data type must support the following API:
public class S p a r s e V e c t o r

Create an n – d i m e n s i o n a l zero vector . public S p a r s e V e c t o r ( int n )

Create a vector whose c o m p o n e n t s are given in a . public S p a r s e V e c t o r ( double [] a )

Return the number of d i m e n s i o n s of this vector . public int size ()

Return the number of nonzero c o m p o n e n t s in this vector . public int nnz ()

Return the ith co mp on en t of this vector .
public double get ( int i )

Set the ith co mp on en t of this vector to x . public void set ( int i , double x )

Return a new vector that is this vector plus that . public S p a r s e V e c t o r add ( S p a r s e V e c t o r that )

Return a new vector that is alpha times this vector . public S p a r s e V e c t o r scale ( double alpha )

Return the dot product of this vector with that . public double dot ( S p a r s e V e c t o r that )

Return the norm ( length ) of this vector .
public double norm ()

Return a string r e p r e s e n t a t i o n of this vector . public String toString ()
$ java S p a r s e V e c t o r
a 
= 
(3, 0.5)(6 , 0 
.11)(9 , 0.75) 

b 
= 
(3, 0.6)(4 , 0 
.9) 

a 
dot 
b = 0.3 

c 
= 
a 
+ b = (3 , 1 
.1)(4 , 0 
.9)(6 , 0.11)(9 , 0.75) 
dim 
= 
10 

nnz 
= 
4 

alpha * a = (3 , 1 
.5)(6 , 0 
.33)(9 , 2.25) 

norm 
b 
= 1.081665 
3826391966 

Problem 2. (Sparse Matrix ) Implement a data type called SparseMatrix that represents an mbyn sparse matrix, as an array of size m of ndimensional SparseVector objects. The data type must support the following API:
1 of 3
CS210 Project 5 (Sparse Vector and Matrix) Swami Iyer
public class S p a r s e M a t r i x

Create an m – by – n zero matrix . public S p a r s e M a t r i x ( int m , int n )

Create an m – by – n matrix whose elements are given in a. public S p a r s e M a t r i x ( double [][] a )

Return a two – element array whose elements are the number of rows

and columns of this matrix .
public int [] size ()

Return the number of nonzero elements in this matrix . public int nnz () {

Return the element at (i, j).
public double get ( int i , int j )

Set the element at (i, j) to x . public void set ( int i , int j , double x )

Return a new vector that is the product of this matrix and x . public S p a r s e V e c t o r times ( S p a r s e V e c t o r x )

Return a new matrix that is the sum of this matrix and that . public S p a r s e M a t r i x add ( S p a r s e M a t r i x that )

Return a string r e p r e s e n t a t i o n of this matrix .
public String toString ()
$ java S p a r s e M a t r i x
A = m = 5 , n = 5 , nnz = 6

(0, 1.0)

(1, 1.0)

(2, 1.0)(4 , 0.3)

(3, 1.0)

(4, 1.0)
B = m = 5 , n = 5 , nnz = 5

(0, 1.0)

(1, 1.0)

(2, 1.0)

(3, 1.0)

(4, 1.0)
A + B = m = 5 , n = 5 , nnz = 6

(0, 2.0)

(1, 2.0)

(2, 2.0)(4 , 0.3)

(3, 2.0)

(4, 2.0)
B * x = (0 , 1.0)(1 , 2.0)(2 , 3.0)(3 , 4.0)(4 , 5.0)
Files to Submit:
2 of 3
CS210 Project 5 (Sparse Vector and Matrix) Swami Iyer

SparseVector.java

SparseMatrix.java

report.txt
3 of 3