*int*First_Non_Zero- :
return the smallest component index in 'p' whose value is non-zero.**(Value *p, unsigned length)** *Vector **Vector_Alloc: allocate memory space for a vector.**(unsigned length)***void*Vector_Free: free the memory space occupied by Vector.**(Vector *vector)***void*Vector_Print: print the contents of a Vector.**(FILE *Dst, char *Format, Vector *vector)***Vector **Vector_Read: read the contents of a Vector.**()***void*Vector_Set: assign 'n' to each component of Vector 'p'.**(Value *p, int n ,unsigned length)***void*Vector_Exchange- :
exchange the components of the vectors 'p1' and 'p2'.
*void*Vector_Copy: copy vector 'p1' to vector 'p2'.**(Value *p1, Value *p2, unsigned length)****Vector_Add**: add two vectors 'p1' and 'p2' and store the result in 'p3'.**(Value *p1, Value *p2, unsigned length)***void*Vector_Sub: subtract two vectors 'p1' and 'p2' and store the result in 'p3'.**(Value *p1, Value *p2, Value *p3, unsigned length)***void*Vector_Or: compute bit-wise OR of vectors 'p1' and 'p2' and store it in 'p3'.**(Value *p1, Value *p2, Value *p3, unsigned length)***void*Vector_Scale: scale vector 'p1' by factor 'lambda' and store it in 'p2'.**(Value *p1, Value *p2, Value lambda, unsigned length)***void*Vector_AntiScale: antiscale vector 'p1' by 'lambda' and store it in 'p2'.**(Value *p1, Value *p2, Value lambda, unsigned length)***Value **Inner_Product: return the inner product of two vectors 'p1' and 'p2'.**(Value *p1, Value *p2, unsigned length)***Value **Vector_Max: return the maximum of the components of 'p'.**(Value *p, unsigned length)***Value **Vector_Min: return the minimum of the components of Vector 'p'.**(Value *p, unsigned length)***void*Vector_Combine: return the linear combination of two vectors.**(Value *p1, Value *p2, Value *p3, Value lambda, Value mu, unsigned length)***int*Vector_Equal: return 1 if 'Vec1' equals 'Vec2', otherwise return 0.**(Value *Vec1, Value *Vec2, unsigned n)***Value **Vector_Min_Not_Zero: return the component of 'p' with minimum non-zero absolute value.**(Value *p, unsigned length, int *index)***Value **Vector_Gcd: return the GCD of components of Vector 'p'.**(Value *p, unsigned length)***void*Vector_Map: given vectors 'p1' and 'p2', and a pointer to a function returning 'Value' type, compute p3[i] = f(p1[i],p2[i]).**(Value *p1, Value *p2, Value *p3, unsigned length, Value *(*f)())***void*Vector_Normalize: reduce a vector by dividing it by its GCD.**(Value *p, unsigned length)***void*Vector_Normalize_Positive: reduce a vector to a positive vector by dividing it by its GCD.**(Value *p, int length,int pos)***Value **Vector_Reduce: reduce 'p' by operating binary function on its components successively.**(Value *p,unsigned length,Value *(*f)())***void*Vector_Sort: sort the components of a vector 'vector' using heap sort.**(Value *vector, unsigned n)**