71 lines
2.4 KiB
C
71 lines
2.4 KiB
C
#define DEBUG_LOG_WRITE_STRING_LIST_TO_FILE 0
|
|
#define DEBUG_LOG_WRITE_ARRAY_BINARY 0
|
|
|
|
function void write_array_binary_F64(String8 path_to_file, F64 *values,
|
|
U32 array_size) {
|
|
OS_Handle file_handle =
|
|
OS_file_open(OS_AccessFlag_Write | OS_AccessFlag_CreateNew, path_to_file);
|
|
{
|
|
ArenaTemp scratch = scratch_get(0, 0);
|
|
String8List list = {0};
|
|
String8 temp = {0};
|
|
temp.str = (U8 *)values;
|
|
temp.size = sizeof(F64) * array_size;
|
|
str8_list_push(scratch.arena, &list, temp);
|
|
OS_file_write(scratch.arena, file_handle, 0, list, 0);
|
|
|
|
#if DEBUG_LOG_WRITE_ARRAY_BINARY
|
|
String8List log_list = {0};
|
|
str8_list_push(scratch.arena, &log_list,
|
|
str8_lit("Wrote binary array data to"));
|
|
str8_list_push(scratch.arena, &log_list, path_to_file);
|
|
StringJoin join = {0};
|
|
join.sep = str8_lit(" ");
|
|
join.post = str8_lit("\n");
|
|
String8 log_msg = str8_list_join(scratch.arena, log_list, &join);
|
|
LOG(log_msg.str);
|
|
#endif
|
|
scratch_release(scratch);
|
|
}
|
|
OS_file_close(file_handle);
|
|
}
|
|
|
|
function void write_string_list_to_file(Arena *arena, String8 path,
|
|
String8List *list) {
|
|
|
|
OS_Handle file_handle =
|
|
OS_file_open(OS_AccessFlag_Write | OS_AccessFlag_CreateNew, path);
|
|
OS_file_write(arena, file_handle, 0, *list, 0);
|
|
|
|
#if DEBUG_WRITE_STRING_LIST_TO_FILE
|
|
String8List log_list = {0};
|
|
str8_list_push(arena, &log_list, str8_lit("Wrote array to"));
|
|
str8_list_push(arena, &log_list, path);
|
|
StringJoin join = {0};
|
|
join.sep = str8_lit(" ");
|
|
join.post = str8_lit("\n");
|
|
String8 log_msg = str8_list_join(arena, log_list, &join);
|
|
LOG(log_msg.str);
|
|
#endif
|
|
|
|
OS_file_close(file_handle);
|
|
}
|
|
|
|
function void write_array_F64(String8 path_to_file, F64 *values, U32 array_size,
|
|
char *fmt) {
|
|
ArenaTemp scratch = scratch_get(0, 0);
|
|
String8List list = {0};
|
|
for (U32 i = 0; i < array_size; i++) {
|
|
str8_list_pushf(scratch.arena, &list, fmt, values[i]);
|
|
}
|
|
write_string_list_to_file(scratch.arena, path_to_file, &list);
|
|
scratch_release(scratch);
|
|
}
|
|
|
|
function String8 get_eigenvector_filename(Arena *arena, U32 energy_idx,
|
|
U32 angular_momentum_idx) {
|
|
String8 out = str8_pushf(arena, "E:\\dev\\hf_again\\out\\eigvec_n%i_l%i.dat",
|
|
energy_idx, angular_momentum_idx);
|
|
return out;
|
|
}
|