atlas  0.6
basic_io.h
Go to the documentation of this file.
1 /*
2  This is basic_io.h
3
4  Copyright (C) 2004,2005 Fokko du Cloux
5  part of the Atlas of Lie Groups and Representations
6
8 */
9
10 #ifndef BASIC_IO_H /* guard against multiple inclusions */
11 #define BASIC_IO_H
12
13 #include <iosfwd>
14 #include <iostream>
15 #include <vector>
16
17 #include "../Atlas.h"
18
19 /******** function declarations *********************************************/
20
21 namespace atlas {
22
23 /* Non-member operators are defined in namespace of an operand, then
24  argument-dependent lookup will find the operator if it's known at all.
25
26  However, for |typedef| types, we need the namespace of the definiens
27 */
28
29 namespace lietype {
30  std::ostream& operator<< (std::ostream& strm, const SimpleLieType& slt);
31  std::ostream& operator<< (std::ostream&, const LieType&);
32  std::ostream& operator<< (std::ostream&, const InnerClassType&);
33 }
34
35 namespace weyl {
36  std::ostream& operator<< (std::ostream&, const WeylWord&);
37 }
38
39 namespace matrix {
40  template<typename C>
41  std::ostream& operator<< (std::ostream&, const Vector<C>&);
42 }
43
44 namespace polynomials {
45 template <typename C>
46  std::ostream& operator<< (std::ostream& strm, const Polynomial<C>& P);
47 }
48
49 namespace ratvec {
50  std::ostream& operator<< (std::ostream&, const RatWeight&);
51 }
52
53 namespace bitset {
54 template<size_t d>
55  std::ostream& operator<< (std::ostream&, const BitSet<d>&);
56 }
57
58 namespace bitvector {
59 template<size_t dim>
60  std::ostream& operator<< (std::ostream&, const BitVector<dim>&);
61 }
62
63 namespace arithmetic {
64
65  std::ostream& operator<< (std::ostream& strm, const Split_integer& s);
66
67 } // |namespace arithmetic|
68
69 namespace basic_io {
70
71 // other functions
72 template<typename I>
73 std::ostream& seqPrint(std::ostream&, const I&, const I&,
74  const char* sep = ",", const char* pre = "",
75  const char* post = "");
76
77 template <unsigned int n>
78 unsigned long long read_bytes(std::istream& in);
79
80 template <unsigned int n>
81 void write_bytes(unsigned long long val, std::ostream& out);
82
83 unsigned long long read_var_bytes(unsigned int n,std::istream& in);
84
85 void put_int (unsigned int val, std::ostream& out);
86 void write_bytes(unsigned int n, unsigned long long val, std::ostream& out);
87
88
89 } // |namespace basic_io|
90
91 } // |namespace atlas|
92
93 #include "basic_io_def.h"
94
95 #endif
Definition: basic_io_def.h:51
void write_bytes(file_pos val, ulong n, std::ostream &out)
Definition: coef-merge.cpp:242
ullong read_var_bytes(unsigned int n, std::istream &in)