Sponsored Content
Top Forums Shell Programming and Scripting Merge Two Tables with duplicates in first table Post 302522814 by empyrean on Monday 16th of May 2011 04:51:20 PM
Old 05-16-2011
the code is working, but when it is printing, the columns from first file i.e the concatenated ones are printing in second line..
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

squeeze duplicates from a table

I have files with an x amounts of rows with each row having 2 columns seperated by delimiter "|" . File contains following records for example. 15|69 15|70 15|71 15|72 15|73 15|74 16|2 16|3 16|4 16|5 16|6 16|7 16|8 16|9 16|10 16|11 16|12 (4 Replies)
Discussion started by: Alex_P
4 Replies

2. Shell Programming and Scripting

merge multiple tables with perl

Hi everyone, I once again got stuck with merging tables and was wondering if someone could help me out on that problem. I have a number of tab delimited tables which I need to merge into one big one. All tables have the same header but a different number of rows (this could be changed if... (6 Replies)
Discussion started by: TuAd
6 Replies

3. Shell Programming and Scripting

Merge multiple tables into big matrix

Hi all, I have a complex (beyond my biological expertise) problem at hand. I need to merge multiple files into 1 big matrix. Please help me with some code. Inp1 Ang_0 chr1 98 T A Ang_0 chr1 352 G A Ang_0 chr1 425 C T Ang_0 chr2 ... (1 Reply)
Discussion started by: newbie83
1 Replies

4. Shell Programming and Scripting

Find duplicates in column 1 and merge their lines (awk?)

Hi, I have a file (sorted by sort) with 8 tab delimited columns. The first column contains duplicated fields and I need to merge all these identical lines. My input file: comp100002 aaa bbb ccc ddd eee fff ggg comp100003 aba aba aba aba aba aba aba comp100003 fff fff fff fff fff fff fff... (5 Replies)
Discussion started by: falcox
5 Replies

5. Shell Programming and Scripting

Merge files without duplicates

Hi all, In a directory of many files, I need to merge only files which do not have identical lines and also the resulatant merge file should not be more than 50000 lines. Basically I need to cover up all text files in that directory and turn them to Merge files.txt with 50000 lines each ... (2 Replies)
Discussion started by: pravfraz
2 Replies

6. Shell Programming and Scripting

Help with merge and remove duplicates

Hi all, I need some help to remove duplicates from a file before merging. I have got 2 files: file1 has data in format 4300 23456 4301 2357 the 4 byte values on the right hand side is uniq, and are not repeated anywhere in the file file 2 has data in same format but is not in... (10 Replies)
Discussion started by: roy121
10 Replies

7. UNIX for Dummies Questions & Answers

How to merge two tables based on a matched column?

Hi, Please excuse me , i have searched unix forum, i am unable to find what i expect , my query is , i have 2 files of same structure and having 1 similar field/column , i need to merge 2 tables/files based on the one matched field/column (that is field 1), file 1:... (5 Replies)
Discussion started by: karthikram
5 Replies

8. Shell Programming and Scripting

Filtering duplicates based on lookup table and rules

please help solving the following. I have access to redhat linux cluster having 32gigs of ram. I have duplicate ids for variable names, in the file 1,2 are duplicates;3,4 and 5 are duplicates;6 and 7 are duplicates. My objective is to use only the first occurrence of these duplicates. Lookup... (4 Replies)
Discussion started by: ritakadm
4 Replies
csr(2rheolef)							    rheolef-6.1 						     csr(2rheolef)

NAME
csr - compressed sparse row matrix (rheolef-6.1) SYNOPSYS
Distributed compressed sparse matrix container stored row by row. DESCRIPTION
Sparse matrix are compressed by rows. In distributed environment, the distribution follows the row distributor (see distributor(2)). ALGEBRA
Adding or substracting two matrices writes a+b and a-b, respectively, and multiplying a matrix by a scalar writes lambda*x. Thus, any lin- ear combination of sparse matrices is available. Matrix-vector product writes a*x where x is a vector (see vec(2)). LIMITATIONS
Some basic linear algebra is still under development: a.trans_mult(x) matrix transpose vector product, trans(a) matrix transpose, a*b matrix product. IMPLEMENTATION
template<class T> class csr<T,sequential> : public smart_pointer<csr_seq_rep<T> > { public: // typedefs: typedef csr_seq_rep<T> rep; typedef smart_pointer<rep> base; typedef typename rep::memory_type memory_type; typedef typename rep::size_type size_type; typedef typename rep::element_type element_type; typedef typename rep::iterator iterator; typedef typename rep::const_iterator const_iterator; typedef typename rep::data_iterator data_iterator; typedef typename rep::const_data_iterator const_data_iterator; // allocators/deallocators: csr() : base(new_macro(rep())) {} explicit csr(const asr<T,sequential>& a) : base(new_macro(rep(a.data()))) {} void resize (size_type loc_nrow1 = 0, size_type loc_ncol1 = 0, size_type loc_nnz1 = 0) { base::data().resize(loc_nrow1, loc_ncol1, loc_nnz1); } void resize (const distributor& row_ownership, const distributor& col_ownership, size_type nnz1 = 0) { base::data().resize(row_ownership, col_ownership, nnz1); } // allocators from initializer list (c++ 2011): #ifdef _RHEOLEF_HAVE_STD_INITIALIZER_LIST csr (const std::initializer_list<csr_concat_value<T,sequential> >& init_list); csr (const std::initializer_list<csr_concat_line<T,sequential> >& init_list); #endif // _RHEOLEF_HAVE_STD_INITIALIZER_LIST // accessors: // global sizes const distributor& row_ownership() const { return base::data().row_ownership(); } const distributor& col_ownership() const { return base::data().col_ownership(); } size_type dis_nrow () const { return row_ownership().dis_size(); } size_type dis_ncol () const { return col_ownership().dis_size(); } size_type dis_nnz () const { return base::data().nnz(); } bool is_symmetric() const { return base::data().is_symmetric(); } void set_symmetry (bool is_symm) { base::data().set_symmetry(is_symm); } size_type pattern_dimension() const { return base::data().pattern_dimension(); } void set_pattern_dimension(size_type dim){ base::data().set_pattern_dimension(dim); } // local sizes size_type nrow () const { return base::data().nrow(); } size_type ncol () const { return base::data().ncol(); } size_type nnz () const { return base::data().nnz(); } // range on local memory size_type row_first_index () const { return base::data().row_first_index(); } size_type row_last_index () const { return base::data().row_last_index(); } size_type col_first_index () const { return base::data().col_first_index(); } size_type col_last_index () const { return base::data().col_last_index(); } const_iterator begin() const { return base::data().begin(); } const_iterator end() const { return base::data().end(); } iterator begin_nonconst() { return base::data().begin(); } iterator end_nonconst() { return base::data().end(); } // accessors, only for distributed (for interface compatibility) size_type ext_nnz() const { return 0; } const_iterator ext_begin() const { return const_iterator(); } const_iterator ext_end() const { return const_iterator(); } size_type jext2dis_j (size_type jext) const { return 0; } // algebra: // y := a*x void mult (const vec<element_type,sequential>& x, vec<element_type,sequential>& y) const { base::data().mult (x,y); } vec<element_type,sequential> operator* (const vec<element_type,sequential>& x) const { vec<element_type,sequential> y (row_ownership(), element_type()); mult (x, y); return y; } void trans_mult (const vec<element_type,sequential>& x, vec<element_type,sequential>& y) const { base::data().trans_mult (x,y); } vec<element_type,sequential> trans_mult (const vec<element_type,sequential>& x) const { vec<element_type,sequential> y (col_ownership(), element_type()); trans_mult (x, y); return y; } // a+b, a-b csr<T,sequential> operator+ (const csr<T,sequential>& b) const; csr<T,sequential> operator- (const csr<T,sequential>& b) const; // lambda*a csr<T,sequential>& operator*= (const T& lambda) { base::data().operator*= (lambda); return *this; } // output: void dump (const std::string& name) const { base::data().dump(name); } }; // lambda*a template<class T> inline csr<T,sequential> operator* (const T& lambda, const csr<T,sequential>& a) { csr<T,sequential> b = a; b.operator*= (lambda); return b; } // -a template<class T> inline csr<T,sequential> operator- (const csr<T,sequential>& a) { return T(-1)*a; } // trans(a) template<class T> inline csr<T,sequential> trans (const csr<T,sequential>& a) { csr<T,sequential> b; a.data().build_transpose (b.data()); return b; } IMPLEMENTATION
template<class T> class csr<T,distributed> : public smart_pointer<csr_mpi_rep<T> > { public: // typedefs: typedef csr_mpi_rep<T> rep; typedef smart_pointer<rep> base; typedef typename rep::memory_type memory_type; typedef typename rep::size_type size_type; typedef typename rep::element_type element_type; typedef typename rep::iterator iterator; typedef typename rep::const_iterator const_iterator; typedef typename rep::data_iterator data_iterator; typedef typename rep::const_data_iterator const_data_iterator; // allocators/deallocators: csr() : base(new_macro(rep())) {} explicit csr(const asr<T,memory_type>& a) : base(new_macro(rep(a.data()))) {} void resize (const distributor& row_ownership, const distributor& col_ownership, size_type nnz1 = 0) { base::data().resize(row_ownership, col_ownership, nnz1); } // allocators from initializer list (c++ 2011): #ifdef _RHEOLEF_HAVE_STD_INITIALIZER_LIST csr (const std::initializer_list<csr_concat_value<T,distributed> >& init_list); csr (const std::initializer_list<csr_concat_line<T,distributed> >& init_list); #endif // _RHEOLEF_HAVE_STD_INITIALIZER_LIST // accessors: // global sizes const distributor& row_ownership() const { return base::data().row_ownership(); } const distributor& col_ownership() const { return base::data().col_ownership(); } size_type dis_nrow () const { return row_ownership().dis_size(); } size_type dis_ncol () const { return col_ownership().dis_size(); } size_type dis_nnz () const { return base::data().dis_nnz(); } bool is_symmetric() const { return base::data().is_symmetric(); } void set_symmetry (bool is_symm) { base::data().set_symmetry(is_symm); } size_type pattern_dimension() const { return base::data().pattern_dimension(); } void set_pattern_dimension(size_type dim){ base::data().set_pattern_dimension(dim); } // local sizes size_type nrow () const { return base::data().nrow(); } size_type ncol () const { return base::data().ncol(); } size_type nnz () const { return base::data().nnz(); } // range on local memory size_type row_first_index () const { return base::data().row_first_index(); } size_type row_last_index () const { return base::data().row_last_index(); } size_type col_first_index () const { return base::data().col_first_index(); } size_type col_last_index () const { return base::data().col_last_index(); } const_iterator begin() const { return base::data().begin(); } const_iterator end() const { return base::data().end(); } iterator begin_nonconst() { return base::data().begin(); } iterator end_nonconst() { return base::data().end(); } // accessors, only for distributed size_type ext_nnz() const { return base::data().ext_nnz(); } const_iterator ext_begin() const { return base::data().ext_begin(); } const_iterator ext_end() const { return base::data().ext_end(); } size_type jext2dis_j (size_type jext) const { return base::data().jext2dis_j(jext); } // algebra: // y := a*x void mult (const vec<element_type,distributed>& x, vec<element_type,distributed>& y) const { base::data().mult (x,y); } vec<element_type,distributed> operator* (const vec<element_type,distributed>& x) const { vec<element_type,distributed> y (row_ownership(), element_type()); mult (x, y); return y; } void trans_mult (const vec<element_type,distributed>& x, vec<element_type,distributed>& y) const { base::data().trans_mult (x,y); } vec<element_type,distributed> trans_mult (const vec<element_type,distributed>& x) const { vec<element_type,distributed> y (col_ownership(), element_type()); trans_mult (x, y); return y; } // a+b, a-b csr<T,distributed> operator+ (const csr<T,distributed>& b) const; csr<T,distributed> operator- (const csr<T,distributed>& b) const; // lambda*a csr<T,distributed>& operator*= (const T& lambda) { base::data().operator*= (lambda); return *this; } // output: void dump (const std::string& name) const { base::data().dump(name); } }; // lambda*a template<class T> inline csr<T,distributed> operator* (const T& lambda, const csr<T,distributed>& a) { csr<T,distributed> b = a; b.operator*= (lambda); return b; } // -a template<class T> inline csr<T,distributed> operator- (const csr<T,distributed>& a) { return T(-1)*a; } // trans(a) template<class T> inline csr<T,distributed> trans (const csr<T,distributed>& a) { csr<T,distributed> b; a.data().build_transpose (b.data()); return b; } SEE ALSO
distributor(2), vec(2) rheolef-6.1 rheolef-6.1 csr(2rheolef)
All times are GMT -4. The time now is 06:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy