# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# Build Folders
build
buildc
dist

# Coveralls repo token
.coveralls.yml

.vscode
.vs

doc/html
doc/latex

__pycache__

examples
