fix latex dictionary format, embed latex equations into executable

This commit is contained in:
Yeongdo Park 2019-08-16 13:57:44 +09:00
parent e9c61bf48c
commit 3bc3fbe8fb
4 changed files with 61 additions and 12 deletions

View file

@ -164,9 +164,9 @@ def test(terms_raw, report=False, latex=False):
elif latex: elif latex:
print "{" print "{"
for avg in ir4.averaged.values(): for avg in ir4.averaged.values():
print "'{}' : ".format(avg.name) print '"{}" : '.format(avg.name)
# print r"\begin{equation}" # print r"\begin{equation}"
print "'${}$' ,".format(avg.latex) print 'r"${}$" ,'.format(avg.latex)
# print r"\end{equation}" # print r"\end{equation}"
print "}" print "}"
else: else:

View file

@ -36,10 +36,13 @@ MODULES += \
# Objects # Objects
OBJ = post_dns.o OBJ = post_dns.o
# Data Objects
ODATA = build_info.odata latex_equations.odata
Post_Cbar_FSD_Incomp : x-edge-cold-bc-uPrime-hybrid Post_Cbar_FSD_Incomp : x-edge-cold-bc-uPrime-hybrid
x-edge-cold-bc-uPrime-hybrid : ${MODULES} ${OBJ} print_build_info.o build_info.o x-edge-cold-bc-uPrime-hybrid : ${MODULES} ${OBJ} print_build_info.o ${ODATA}
${compiler} -o x-edge-cold-bc-uPrime-hybrid ${flags} ${MODULES} ${OBJ} print_build_info.o build_info.o ${compiler} -o x-edge-cold-bc-uPrime-hybrid ${flags} ${MODULES} ${OBJ} print_build_info.o ${ODATA}
${OBJ} : ${MODULES} ${OBJ} : ${MODULES}
@ -53,7 +56,7 @@ cleanAll: clean
rm -f m_terms.f90 rm -f m_terms.f90
clean: clean:
rm -f *.o *.mod x-edge-cold-bc-uPrime-hybrid test_calculate test_compact build_info.txt rm -f *.o *.odata *.mod x-edge-cold-bc-uPrime-hybrid test_calculate test_compact build_info.txt latex_equations.txt
test : test_calculate test : test_calculate
./test_calculate ./test_calculate
@ -71,8 +74,11 @@ test_compact.o : Compact.o
print_build_info.o : print_build_info.c print_build_info.o : print_build_info.c
gcc -c print_build_info.c gcc -c print_build_info.c
build_info.o : build_info.txt %.odata : %.txt
ld -r -b binary -o build_info.o build_info.txt ld -r -b binary -o $@ $<
build_info.txt : ${TERMSPEC} build_info.txt : ${TEMSPEC}
python code_gen/code_gen.py -b ${TERMSPEC} > build_info.txt python code_gen/code_gen.py -b ${TERMSPEC} > $@
latex_equations.txt : ${TEMSPEC}
python code_gen/code_gen.py -x ${TERMSPEC} > $@

View file

@ -7,12 +7,28 @@
USE post USE post
USE Compact USE Compact
interface
function build_info_length()
integer :: build_info_length
end function build_info_length
function latex_length()
integer :: latex_length
end function latex_length
end interface
CHARACTER(100) :: num1char = "" CHARACTER(100) :: num1char = ""
character (len=8000) :: input_string = "" character (len=8000) :: input_string = ""
character (len=8000) :: latex_string = ""
call cstr(input_string) call cstr(input_string)
call eqnstr(latex_string)
!First, make sure the right number of inputs have been provided !First, make sure the right number of inputs have been provided
IF(COMMAND_ARGUMENT_COUNT() > 0) THEN IF(COMMAND_ARGUMENT_COUNT() > 0) THEN
@ -25,8 +41,11 @@
WRITE(*,*) "optional arguments:" WRITE(*,*) "optional arguments:"
WRITE(*,*) " -h show this help message and exit" WRITE(*,*) " -h show this help message and exit"
WRITE(*,*) " -v print version information" WRITE(*,*) " -v print version information"
WRITE(*,*) " -x print latex equations"
ELSE IF(num1char=="-v") THEN ELSE IF(num1char=="-v") THEN
WRITE(*,*) input_string(1:lnblnk(input_string)) WRITE(*,*) input_string(1:lnblnk(input_string))
ELSE IF(num1char=="-x") THEN
WRITE(*,*) latex_string(1:lnblnk(latex_string))
ELSE ELSE
WRITE(*,*) 'ERROR, OPTION NOT SUPPORTED ', num1char WRITE(*,*) 'ERROR, OPTION NOT SUPPORTED ', num1char
END IF END IF

View file

@ -2,12 +2,26 @@ extern const char _binary_build_info_txt_start [];
extern const char _binary_build_info_txt_end []; extern const char _binary_build_info_txt_end [];
extern const char _binary_build_info_txt_size []; extern const char _binary_build_info_txt_size [];
void cstr_( char *s, unsigned long b ) extern const char _binary_latex_equations_txt_start [];
extern const char _binary_latex_equations_txt_end [];
extern const char _binary_latex_equations_txt_size [];
int build_info_length_()
{
return ((char*)&_binary_build_info_txt_end - (char*)&_binary_build_info_txt_start);
}
int latex_length_()
{
return ((char*)&_binary_latex_equations_txt_end - (char*)&_binary_latex_equations_txt_start);
}
void string_copy ( char *s, unsigned long b, const char *p_start , const char *p_end )
{ {
int count = 0; int count = 0;
char* p = &_binary_build_info_txt_start; const char* p = p_start;
while ( p != &_binary_build_info_txt_end && count < b ) while ( p != p_end && count < b )
{ {
s[count++] = *p++; s[count++] = *p++;
} }
@ -17,3 +31,13 @@ void cstr_( char *s, unsigned long b )
s[count++] = ' '; s[count++] = ' ';
} }
} }
void cstr_( char *s, unsigned long b )
{
string_copy(s, b, &_binary_build_info_txt_start, &_binary_build_info_txt_end);
}
void eqnstr_( char *s, unsigned long b )
{
string_copy(s, b, &_binary_latex_equations_txt_start, &_binary_latex_equations_txt_end);
}