Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
090c867
Alternative dot print which helps understand the DAG using any dot gr…
lukas-valenta-tul Oct 15, 2025
cb9414e
Better cast
lukas-valenta-tul Oct 19, 2025
95d91c3
Improved print_in_dot2. If the symbols_ map is supplied, it will also…
lukas-valenta-tul Oct 20, 2025
12b37e9
More appropriate catch blocks
lukas-valenta-tul Oct 20, 2025
b44c9d7
Matrix and vector norms
lukas-valenta-tul Nov 1, 2025
5bb3f9a
InverseMap now holds the indices of the node which is then printed to…
lukas-valenta-tul Nov 9, 2025
69be136
Attempt at computing spectral norm using eigenvalues. Requires compar…
lukas-valenta-tul Nov 9, 2025
8b5e0eb
min, max, sum of all coefficients
lukas-valenta-tul Nov 23, 2025
c061f77
cross product for vectors
lukas-valenta-tul Nov 23, 2025
591eb62
Created two more Make targets, to generete and run an expanded DAG fr…
lukas-valenta-tul Dec 7, 2025
717f3c9
Nitpick working on basic example
lukas-valenta-tul Dec 29, 2025
955e006
included generation time and date for autogenerated.cc
lukas-valenta-tul Jan 4, 2026
c6ba90e
P_SET_CONSTANT macro added, does not fully work
lukas-valenta-tul Jan 4, 2026
af7f005
DagPrinter to move all the print functions from ExpressionDAG
lukas-valenta-tul Jan 5, 2026
e2c6d32
Generation and running of generated files via preprocessor variables …
lukas-valenta-tul Jan 7, 2026
c11ee3e
Reworked nitpick to use the new ExprCase class rather than macros
lukas-valenta-tul Jan 20, 2026
285c200
Running with the ExprCase class
lukas-valenta-tul Jan 20, 2026
16013b6
Ternary ScalarNode::create, mul_add (MAC) and an attempt to use it wi…
lukas-valenta-tul Jan 22, 2026
5a48e22
More attempts at getting this nitpick_run to work
lukas-valenta-tul Jan 22, 2026
f131413
Fixed the nitpick_run.cc error
lukas-valenta-tul Jan 22, 2026
2a439c5
Moved nitpick and cases to test folder
lukas-valenta-tul Jan 31, 2026
d32746f
added basic test/nitpick/README.md
lukas-valenta-tul Jan 31, 2026
94c3805
Matrix transpose
lukas-valenta-tul Feb 5, 2026
fe6e75f
sym, dev functions
lukas-valenta-tul Feb 5, 2026
e112f01
Fixed .T in parser and uncommented tests using it
lukas-valenta-tul Feb 13, 2026
1082686
Fixed some missing refactor chagnes from before
lukas-valenta-tul Feb 22, 2026
1f3a179
comments
lukas-valenta-tul Mar 1, 2026
7787bec
muladd refactor
lukas-valenta-tul Mar 1, 2026
b828da7
Nitpick run now allocates N and shifts double* to actually compute al…
lukas-valenta-tul Mar 1, 2026
96542bb
moved brace
lukas-valenta-tul Mar 10, 2026
c58b6a2
nitpick_run optimization, fixes and exposed result ptr of ExprCase
lukas-valenta-tul Mar 10, 2026
70404a9
Inverse matrix (<4x4)
lukas-valenta-tul Mar 10, 2026
7a42879
Throw for unsupported matrix size in inv()
lukas-valenta-tul Mar 10, 2026
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
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,7 @@ build/*
.cproject
.project
.vs
CMakeSettings.json
CMakeSettings.json

# Autogenerated files
test/cases/*_gen.hh
60 changes: 59 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ message(STATUS "=======================================================\n\n")

message(STATUS "VCL2_INCLUDE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}/third_party/VCL_v2")

set(BPARSER_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/include ${Boost_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/third_party/VCL_v2 ${EIGEN3_INCLUDE_DIR})
set(BPARSER_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/test/cases ${Boost_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/third_party/VCL_v2 ${EIGEN3_INCLUDE_DIR})
if(NOT PROJECT_IS_TOP_LEVEL)
set(BPARSER_INCLUDES ${BPARSER_INCLUDES} PARENT_SCOPE)
endif()
Expand Down Expand Up @@ -290,3 +290,61 @@ define_test(test_grammar bparser)
define_test(test_processor bparser) #is it broken? -LV
define_test(test_speed bparser)
define_test(test_simd)

macro(define_nit_target make_name def_file gen_file src_name)
set(nit_source "${CMAKE_CURRENT_SOURCE_DIR}/test/nitpick/${src_name}.cc")
set(nit_name "${src_name}_${make_name}")
set(nit_binary "${nit_name}_bin")

add_executable(${nit_binary} EXCLUDE_FROM_ALL ${nit_source} )
add_dependencies(${nit_binary} bparser)
target_link_libraries(${nit_binary} bparser)
set_property(TARGET ${nit_binary} PROPERTY COMPILE_DEFINITIONS "DEF_FILE=\"${def_file}\";GEN_FILE=\"${gen_file}\"")

add_custom_target(${nit_name}
COMMAND "$<TARGET_FILE:${nit_binary}>"
DEPENDS ${nit_binary}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/test/cases")
endmacro()

macro(define_nit make_name)
set(nit_def_file "${make_name}_def.hh")
set(nit_gen_file "${make_name}_gen")

define_nit_target(${make_name} ${nit_def_file} "${nit_gen_file}.hh" "nitpick_generate") #generate the _gen.hh file

define_nit_target(${make_name} ${nit_def_file} "${nit_gen_file}_ref.hh" "nitpick_run") #run the _gen_ref.hh file
define_nit_target("${make_name}_edit" ${nit_def_file} "${nit_gen_file}_edit.hh" "nitpick_run") #run the _gen_edit.hh file
endmacro()

define_nit(basic_expr)
define_nit(norm2)


#set(src_name "nitpick_generate")
#set(nit_source "${CMAKE_CURRENT_SOURCE_DIR}/nitpick/${src_name}.cc")
#set(nit_binary "${src_name}_bin")
#set(nit_name "${src_name}")

#add_executable(${nit_binary} EXCLUDE_FROM_ALL ${nit_source} )
#add_dependencies(${nit_binary} bparser)
#target_link_libraries(${nit_binary} bparser)

#add_custom_target(${nit_name}
#COMMAND "$<TARGET_FILE:${nit_binary}>"
#DEPENDS ${nit_binary}
#WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/nitpick")

#set(src_name "nitpick_run")
#set(nit_source "${CMAKE_CURRENT_SOURCE_DIR}/nitpick/${src_name}.cc")
#set(nit_binary "${src_name}_bin")
#set(nit_name "${src_name}")

#add_executable(${nit_binary} EXCLUDE_FROM_ALL ${nit_source} )
#add_dependencies(${nit_binary} bparser)
#target_link_libraries(${nit_binary} bparser)

#add_custom_target(${nit_name}
#COMMAND "$<TARGET_FILE:${nit_binary}>"
#DEPENDS ${nit_binary}
#WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/nitpick")
Loading