Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 18 additions & 22 deletions src/Bond.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@

#include "Bond.hpp"

#include <algorithm>
#include <filesystem>

#include "utils/utils.hpp"

using namespace std;

namespace cytnx {
Expand Down Expand Up @@ -469,47 +473,39 @@ namespace cytnx {

void Bond::Save(const std::string &fname) const {
fstream f;
f.open((fname + ".cybd"), ios::out | ios::trunc | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for save.%s", "\n");
if (std::filesystem::path(fname).has_extension()) {
// filename extension is given
f.open(fname, ios::out | ios::trunc | ios::binary);
} else {
// add filename extension
f.open((fname + ".cybd"), ios::out | ios::trunc | ios::binary);
}
this->_Save(f);
f.close();
}
void Bond::Save(const char *fname) const {
fstream f;
string ffname = string(fname) + ".cybd";
f.open((ffname), ios::out | ios::trunc | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for save.%s", "\n");
}
this->_Save(f);
f.close();
}
void Bond::Save(const char *fname) const { this->Save(string(fname)); }

Bond Bond::Load(const std::string &fname) {
Bond out;
fstream f;
f.open(fname, ios::in | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for load.%s", "\n");
if (std::filesystem::path(fname).has_extension()) {
// filename extension is given
f.open(fname, ios::in | ios::binary);
} else {
// add filename extension
f.open((fname + ".cybd"), ios::in | ios::binary);
}
out._Load(f);
f.close();
return out;
}

Bond Bond::Load(const char *fname) {
Bond out;
fstream f;
f.open(fname, ios::in | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for load.%s", "\n");
}
out._Load(f);
f.close();
return out;
}
Bond Bond::Load(const char *fname) { return Bond::Load(string(fname)); }

void Bond::_Save(fstream &f) const {
cytnx_error_msg(!f.is_open(), "[ERROR][Bond] invalid fstream%s", "\n");
Expand Down
37 changes: 16 additions & 21 deletions src/Symmetry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <iostream>
#include <string>
#include <vector>
#include <filesystem>

using namespace std;

Expand Down Expand Up @@ -240,46 +241,40 @@ namespace cytnx {

void cytnx::Symmetry::Save(const std::string &fname) const {
fstream f;
f.open((fname + ".cysym"), ios::out | ios::trunc | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for save.%s", "\n");
if (std::filesystem::path(fname).has_extension()) {
// filename extension is given
f.open(fname, ios::out | ios::trunc | ios::binary);
} else {
// add filename extension
f.open((fname + ".cysym"), ios::out | ios::trunc | ios::binary);
}
this->_Save(f);
f.close();
}
void cytnx::Symmetry::Save(const char *fname) const {
fstream f;
string ffname = string(fname) + ".cysym";
f.open((ffname), ios::out | ios::trunc | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for save.%s", "\n");
}
this->_Save(f);
f.close();
}
void cytnx::Symmetry::Save(const char *fname) const { this->Save(string(fname)); }

cytnx::Symmetry cytnx::Symmetry::Load(const std::string &fname) {
Symmetry out;
fstream f;
f.open(fname, ios::in | ios::binary);
if (std::filesystem::path(fname).has_extension()) {
// filename extension is given
f.open(fname, ios::in | ios::binary);
} else {
// add filename extension
f.open((fname + ".cysym"), ios::in | ios::binary);
}
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for load.%s", "\n");
}
out._Load(f);
f.close();
return out;
}

cytnx::Symmetry cytnx::Symmetry::Load(const char *fname) {
Symmetry out;
fstream f;
f.open(fname, ios::in | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for load.%s", "\n");
}
out._Load(f);
f.close();
return out;
return cytnx::Symmetry::Load(string(fname));
}

//==================
Expand Down
41 changes: 19 additions & 22 deletions src/Tensor.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
#include <typeinfo>
#include "Tensor.hpp"

#include <typeinfo>
#include <filesystem>

#include "linalg.hpp"
#include "utils/is.hpp"
#include "Type.hpp"

using namespace std;

#ifdef BACKEND_TORCH
Expand Down Expand Up @@ -446,23 +450,20 @@ namespace cytnx {
}
void Tensor::Save(const std::string &fname) const {
fstream f;
f.open((fname + ".cytn"), ios::out | ios::trunc | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for save.%s", "\n");
if (std::filesystem::path(fname).has_extension()) {
// filename extension is given
f.open(fname, ios::out | ios::trunc | ios::binary);
} else {
// add filename extension
f.open((fname + ".cytn"), ios::out | ios::trunc | ios::binary);
}
this->_Save(f);
f.close();
}
void Tensor::Save(const char *fname) const {
fstream f;
string ffname = string(fname) + ".cytn";
f.open(ffname, ios::out | ios::trunc | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for save.%s", "\n");
}
this->_Save(f);
f.close();
}
void Tensor::Save(const char *fname) const { this->Save(string(fname)); }
void Tensor::_Save(fstream &f) const {
// header
// check:
Expand Down Expand Up @@ -493,25 +494,21 @@ namespace cytnx {
Tensor Tensor::Load(const std::string &fname) {
Tensor out;
fstream f;
f.open(fname, ios::in | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for load.%s", "\n");
if (std::filesystem::path(fname).has_extension()) {
// filename extension is given
f.open(fname, ios::in | ios::binary);
} else {
// add filename extension
f.open((fname + ".cytn"), ios::in | ios::binary);
}
out._Load(f);
f.close();
return out;
}
Tensor Tensor::Load(const char *fname) {
Tensor out;
fstream f;
f.open(fname, ios::in | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for load.%s", "\n");
}
out._Load(f);
f.close();
return out;
}
Tensor Tensor::Load(const char *fname) { return Tensor::Load(string(fname)); }
void Tensor::_Load(fstream &f) {
// header
// check:
Expand Down
44 changes: 20 additions & 24 deletions src/UniTensor.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
#include <typeinfo>
#include "UniTensor.hpp"
#include "utils/utils.hpp"

#include <typeinfo>
#include <filesystem>

#include "utils/utils.hpp"
#include "linalg.hpp"
#include "random.hpp"

Expand Down Expand Up @@ -156,46 +158,40 @@ namespace cytnx {

void UniTensor::Save(const std::string &fname) const {
fstream f;
f.open((fname + ".cytnx"), ios::out | ios::trunc | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for save.%s", "\n");
if (std::filesystem::path(fname).has_extension()) {
// filename extension is given
f.open(fname, ios::out | ios::trunc | ios::binary);
} else {
// add filename extension
f.open((fname + ".cytnx"), ios::out | ios::trunc | ios::binary);
}
this->_Save(f);
f.close();
}
void UniTensor::Save(const char *fname) const {
fstream f;
string ffname = string(fname) + ".cytnx";
f.open((ffname), ios::out | ios::trunc | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for save.%s", "\n");
}
this->_Save(f);
f.close();
}
void UniTensor::Save(const char *fname) const { Save(string(fname)); }

UniTensor UniTensor::Load(const std::string &fname) {
UniTensor out;
fstream f;
f.open(fname, ios::in | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for load. >> %s\n", fname.c_str());
if (std::filesystem::path(fname).has_extension()) {
// filename extension is given
f.open(fname, ios::in | ios::binary);
} else {
// add filename extension
f.open((fname + ".cytnx"), ios::in | ios::binary);
}
out._Load(f);
f.close();
return out;
}
UniTensor UniTensor::Load(const char *fname) {
UniTensor out;
fstream f;
f.open(fname, ios::in | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for load. >> %s\n", fname);
cytnx_error_msg(true, "[ERROR] invalid file path for load. >> %s\n", fname.c_str());
}
out._Load(f);
f.close();
return out;
}
UniTensor UniTensor::Load(const char *fname) { return UniTensor::Load(string(fname)); }

// Random Generators:
UniTensor UniTensor::normal(const cytnx_uint64 &Nelem, const double &mean, const double &std,
const std::vector<std::string> &in_labels, const unsigned int &seed,
Expand Down
36 changes: 15 additions & 21 deletions src/backend/Storage.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include "backend/Storage.hpp"

#include <iostream>
#include <filesystem>

using namespace std;

Expand Down Expand Up @@ -83,23 +84,20 @@ namespace cytnx {

void Storage::Save(const std::string &fname) const {
fstream f;
f.open((fname + ".cyst"), ios::out | ios::trunc | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for save.%s", "\n");
if (std::filesystem::path(fname).has_extension()) {
// filename extension is given
f.open(fname, ios::out | ios::trunc | ios::binary);
} else {
// add filename extension
f.open((fname + ".cyst"), ios::out | ios::trunc | ios::binary);
}
this->_Save(f);
f.close();
}
void Storage::Save(const char *fname) const {
fstream f;
string ffname = string(fname) + ".cyst";
f.open(ffname, ios::out | ios::trunc | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for save.%s", "\n");
}
this->_Save(f);
f.close();
}
void Storage::Save(const char *fname) const { this->Save(string(fname)); }
void Storage::Tofile(const std::string &fname) const {
fstream f;
f.open(fname, ios::out | ios::trunc | ios::binary);
Expand Down Expand Up @@ -230,25 +228,21 @@ namespace cytnx {
Storage Storage::Load(const std::string &fname) {
Storage out;
fstream f;
f.open(fname, ios::in | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for load.%s", "\n");
if (std::filesystem::path(fname).has_extension()) {
// filename extension is given
f.open(fname, ios::in | ios::binary);
} else {
// add filename extension
f.open((fname + ".cyst"), ios::in | ios::binary);
}
out._Load(f);
f.close();
return out;
}
Storage Storage::Load(const char *fname) {
Storage out;
fstream f;
f.open(fname, ios::in | ios::binary);
if (!f.is_open()) {
cytnx_error_msg(true, "[ERROR] invalid file path for load.%s", "\n");
}
out._Load(f);
f.close();
return out;
}
Storage Storage::Load(const char *fname) { return Storage::Load(string(fname)); }
void Storage::_Load(fstream &f) {
// header
unsigned long long sz;
Expand Down
Loading
Loading