AMF-Placer  2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
strPrint.cc
Go to the documentation of this file.
1 
25 #include "strPrint.h"
26 #include <chrono>
27 #include <ios>
28 #include <stdio.h>
29 #include <stdlib.h>
30 #include <string>
31 
32 std::chrono::time_point<std::chrono::steady_clock> oriTime;
33 
34 void print_cmd(std::string tmp_string)
35 {
36  printf("\x1b[%d;%dm%s\x1b[%dm \x1b[0;0m\x1b[0m %s\n", 40, 33, "HiFPlacer CMD: ", 0, tmp_string.c_str());
37 }
38 
39 void print_info(std::string tmp_string)
40 {
41  printf("\x1b[%d;%dm%s\x1b[%dm \x1b[0;0m\x1b[0m %s\n", 40, 34, "HiFPlacer INFO: ", 0, tmp_string.c_str());
42 }
43 
44 void print_status(std::string tmp_string)
45 {
46  auto nowTime = std::chrono::steady_clock::now();
47  auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(nowTime - oriTime).count();
48  printf("\x1b[%d;%dm%s\x1b[%dm \x1b[0;0m\x1b[0m %s (elapsed time: %.3lf s)\n", 40, 32, "HiFPlacer STATUS: ", 0,
49  tmp_string.c_str(), (double)millis / 1000);
50 }
51 
52 void print_error(std::string tmp_string)
53 {
54  printf("\x1b[%d;%dm%s\x1b[%dm \x1b[0;0m\x1b[0m %s\n", 43, 31, "HiFPlacer ERROR: ", 0, tmp_string.c_str());
55 }
56 
57 void print_warning(std::string tmp_string)
58 {
59  printf("\x1b[%d;%dm%s\x1b[%dm \x1b[0;0m\x1b[0m %s\n", 43, 31, "HiFPlacer WARNING: ", 0, tmp_string.c_str());
60 }
61 
62 std::string to_string_align3(int __val)
63 {
64  return __gnu_cxx::__to_xstring<std::string>(&std::vsnprintf, 4 * sizeof(int), "%3d", __val);
65 }
66 
67 #define PBSTR "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
68 #define PBWIDTH 60
69 
70 void printProgress(double percentage)
71 {
72  int val = (int)(percentage * 100);
73  int lpad = (int)(percentage * PBWIDTH);
74  int rpad = PBWIDTH - lpad;
75  printf("\r%3d%% [%.*s%*s]", val, lpad, PBSTR, rpad, "");
76  fflush(stdout);
77 }
PBWIDTH
#define PBWIDTH
Definition: strPrint.cc:68
to_string_align3
std::string to_string_align3(int __val)
Definition: strPrint.cc:62
strPrint.h
print_status
void print_status(std::string tmp_string)
Definition: strPrint.cc:44
print_error
void print_error(std::string tmp_string)
Definition: strPrint.cc:52
print_warning
void print_warning(std::string tmp_string)
Definition: strPrint.cc:57
printProgress
void printProgress(double percentage)
Definition: strPrint.cc:70
print_info
void print_info(std::string tmp_string)
Definition: strPrint.cc:39
oriTime
std::chrono::time_point< std::chrono::steady_clock > oriTime
Definition: strPrint.cc:32
print_cmd
void print_cmd(std::string tmp_string)
Definition: strPrint.cc:34
PBSTR
#define PBSTR
Definition: strPrint.cc:67