00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <iostream>
00023 #include <cstdlib>
00024 #include <cstring>
00025 #include <iomanip>
00026
00027 #include "datanode.h"
00028
00029 namespace matvec {
00030
00031 DataNode::DataNode(const DataNode& A)
00032 {
00033 copyfrom(A);
00034 }
00035
00036 void DataNode::copyfrom(const DataNode& A)
00037 {
00038 if (this == &A) return;
00039 data = A.data;
00040 missing = A.missing;
00041 }
00042
00043 const DataNode& DataNode::operator=(const DataNode& A)
00044 {
00045 copyfrom(A);
00046 return *this;
00047 }
00048
00049 std::ostream& operator<<(std::ostream& stream, const DataNode& A)
00050 {
00051 std::cout.precision(6);
00052 if (A.missing) {
00053 stream << " " << std::setw(12) << ".";
00054 }
00055 else {
00056 stream << " " << std::setw(12) << A.data.double_value;
00057 }
00058 return stream;
00059 }
00060 }