aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcathook <b01902109@csie.ntu.edu.tw>2014-05-02 04:10:56 +0800
committercathook <b01902109@csie.ntu.edu.tw>2014-05-02 04:10:56 +0800
commit33d419e4d54d969798af80f05e05f0c447a99594 (patch)
treec78355a2d334e34df865aca865dbb4864a85820c
parentd2d7a49563a8f04bd07264a4a989d5656313d375 (diff)
downloadmeow-33d419e4d54d969798af80f05e05f0c447a99594.tar
meow-33d419e4d54d969798af80f05e05f0c447a99594.tar.gz
meow-33d419e4d54d969798af80f05e05f0c447a99594.tar.bz2
meow-33d419e4d54d969798af80f05e05f0c447a99594.tar.lz
meow-33d419e4d54d969798af80f05e05f0c447a99594.tar.xz
meow-33d419e4d54d969798af80f05e05f0c447a99594.tar.zst
meow-33d419e4d54d969798af80f05e05f0c447a99594.zip
big change about dir structure
-rw-r--r--GNUmakefile/GNUmakefile77
-rwxr-xr-xGNUmakefile/GNUmakefile.dependency.bash21
-rw-r--r--Makefile32
-rw-r--r--README.html2
-rw-r--r--_test/.gitignore2
-rw-r--r--header.asciidoc13
-rw-r--r--meowpp.test/.gitignore2
l---------meowpp.test/GNUmakefile1
l---------meowpp.test/GNUmakefile.dependency.bash1
-rw-r--r--meowpp.test/GNUmakefile.targets8
-rw-r--r--meowpp.test/dep/BinaryIndexTree.d33
-rw-r--r--meowpp.test/dep/Colors.d47
-rw-r--r--meowpp.test/dep/DisjointSet.d32
-rw-r--r--meowpp.test/dep/KD_Tree.d36
-rw-r--r--meowpp.test/dep/Matrix.d30
-rw-r--r--meowpp.test/dep/MergeableHeap.d33
-rw-r--r--meowpp.test/dep/SegmentTree.d34
-rw-r--r--meowpp.test/dep/SplayTree.d33
-rw-r--r--meowpp.test/dep/SplayTree_Range.d34
-rw-r--r--meowpp.test/dep/VP_Tree.d39
-rw-r--r--meowpp.test/dep/dsa.d30
l---------meowpp.test/inc/meowpp1
-rw-r--r--meowpp.test/inc/meowpp.h (renamed from _test/meowpp.h)0
-rw-r--r--meowpp.test/src/BinaryIndexTree.cpp (renamed from _test/meowpp_BinaryIndexTree.cpp)0
-rw-r--r--meowpp.test/src/Colors.cpp (renamed from _test/meowpp_Colors.cpp)0
-rw-r--r--meowpp.test/src/DisjointSet.cpp (renamed from _test/meowpp_DisjointSet.cpp)6
-rw-r--r--meowpp.test/src/KD_Tree.cpp (renamed from _test/meowpp_KD_Tree.cpp)5
-rw-r--r--meowpp.test/src/Matrix.cpp (renamed from _test/meowpp_Matrix.cpp)0
-rw-r--r--meowpp.test/src/MergeableHeap.cpp (renamed from _test/meowpp_MergeableHeap.cpp)0
-rw-r--r--meowpp.test/src/SegmentTree.cpp (renamed from _test/meowpp_SegmentTree.cpp)0
-rw-r--r--meowpp.test/src/SplayTree.cpp (renamed from _test/meowpp_SplayTree.cpp)7
-rw-r--r--meowpp.test/src/SplayTree_Range.cpp (renamed from _test/meowpp_SplayTree_Range.cpp)11
-rw-r--r--meowpp.test/src/VP_Tree.cpp (renamed from _test/meowpp_VP_Tree.cpp)5
-rw-r--r--meowpp.test/src/dsa.cpp (renamed from _test/meowpp.cpp)0
-rw-r--r--meowpp/dsa/KD_Tree.h2
-rw-r--r--meowpp/dsa/KD_Tree.hpp16
-rw-r--r--meowpp/dsa/SegmentTree.hpp2
-rw-r--r--meowpp/dsa/VP_Tree.hpp19
-rw-r--r--meowpp/oo/ObjBase.h8
-rw-r--r--meowpp/oo/ObjPort.h18
-rw-r--r--meowpp/oo/ObjPort.hpp47
-rw-r--r--meowpp/oo/ObjSelector.h11
42 files changed, 622 insertions, 76 deletions
diff --git a/GNUmakefile/GNUmakefile b/GNUmakefile/GNUmakefile
new file mode 100644
index 0000000..8c3d2ef
--- /dev/null
+++ b/GNUmakefile/GNUmakefile
@@ -0,0 +1,77 @@
+INC := inc
+SRC := src
+OBJ := obj
+BIN := bin
+DEP := dep
+
+LIB_INCS :=
+CXX := g++
+CXXFLAGS := -O2 -Wall -I$(INC) $(LIB_INCS)
+CXX_OBJ := $(CXX) -c
+CXX_DEP := $(CXX) -MM
+
+DEPENDENCY_CREATER := ./GNUmakefile.dependency.bash
+
+OBJECTS := $(patsubst $(SRC)/%.cpp,$(OBJ)/%.o,$(wildcard $(SRC)/*.cpp))
+DEPENDENCYS := $(patsubst $(SRC)/%.cpp,$(DEP)/%.d,$(wildcard $(SRC)/*.cpp))
+
+TARGET_FILE := GNUmakefile.targets
+TARGETS :=
+
+NAME := empty
+
+.PHONY: all dep clean init new del add sub
+
+-include $(TARGET_FILE)
+
+all: $(TARGETS);
+
+init:
+ -@mkdir -p $(BIN)
+ -@mkdir -p $(SRC)
+ -@mkdir -p $(INC)
+ -@mkdir -p $(OBJ)
+ -@mkdir -p $(DEP)
+ -@echo '' > $(TARGET_FILE)
+
+new:
+ @set -e; echo "Add target '$(NAME)'"; \
+ echo 'TARGETS := $$(TARGETS) $$(BIN)/$(NAME)' >> $(TARGET_FILE); \
+ echo '$(NAME)_OBJS := $(foreach n,$(OBJS),$$(OBJ)/$(n).o)' >> $(TARGET_FILE); \
+ echo '$(NAME)_LIBS := $(LIBS)' >> $(TARGET_FILE); \
+ echo '$$(BIN)/$(NAME): $$(OBJ)/$(NAME).o $$($(NAME)_OBJS)' >> $(TARGET_FILE); \
+ echo '\t@echo Target: $$@...' >> $(TARGET_FILE); \
+ echo '\t@$$(CXX) $$^ $$(CXXFLAGS) `pkg-config --cflags --libs $$($(NAME)_LIBS) 2>/dev/null` -o $$@' >> $(TARGET_FILE); \
+ echo '' >> $(TARGET_FILE)
+
+add:
+ @set -e; echo "Add Objects $(OBJS) to Target '$(NAME)'"; \
+ sed '/^$(NAME)_OBJS :=/s/$$/& $(foreach n,$(OBJS),\$$(OBJ)\/$(n).o)/' $(TARGET_FILE) >$(TARGET_FILE).$$$$; \
+ mv -f $(TARGET_FILE).$$$$ $(TARGET_FILE)
+ @set -e; echo "Add Libraries $(LIBS) to Target '$(NAME)'"; \
+ sed '/^$(NAME)_LIBS :=/s/$$/& $(subst /,\/,$(LIBS))/' $(TARGET_FILE) >$(TARGET_FILE).$$$$; \
+ mv -f $(TARGET_FILE).$$$$ $(TARGET_FILE)
+
+sub:
+ @set -e; echo "Remove Objects $(OBJS) from Target '$(NAME)'"; \
+ sed '/^$(NAME)_OBJS :=/s/$(subst \ ,|,$(foreach n,$(OBJS),\$$(OBJ)\/$(n).o))//' $(TARGET_FILE) >$(TARGET_FILE).$$$$; \
+ mv -f $(TARGET_FILE).$$$$ $(TARGET_FILE)
+ @set -e; echo "Remove Libraries $(LIBS) from Target '$(NAME)'"; \
+ sed '/^$(NAME)_OBJS :=/s/$(subst \ ,|,$(foreach n,$(LIBS),\$$(OBJ)\/$(n).o))//' $(TARGET_FILE) >$(TARGET_FILE).$$$$; \
+ mv -f $(TARGET_FILE).$$$$ $(TARGET_FILE)
+
+clean:
+ -rm -f $(BIN)/*
+ -rm -f $(OBJ)/* 2>/dev/null
+ -rm -f $(DEP)/*
+
+dep: $(DEPENDENCY);
+
+-include $(DEPENDENCYS)
+
+$(DEPENDENCYS):: $(DEP)/%.d: $(SRC)/%.cpp
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+$(OBJECTS): $(OBJ)/%.o: $(SRC)/%.cpp $(DEP)/%.d $(DEP)/%.d
+ @echo 'Objects: $@...'
+ @$(CXX_OBJ) $(CXXFLAGS) -o $@ $<
diff --git a/GNUmakefile/GNUmakefile.dependency.bash b/GNUmakefile/GNUmakefile.dependency.bash
new file mode 100755
index 0000000..6d83ca4
--- /dev/null
+++ b/GNUmakefile/GNUmakefile.dependency.bash
@@ -0,0 +1,21 @@
+#! /bin/bash
+
+out=`echo $2 | sed -e 's/\\//\\\\\//g'`
+
+echo $1 \
+ | sed -e 's/\\ / /g' \
+ | sed -e ':x; /\\$/ {N;s/\\\n//; tx};' \
+ | sed -e 's/.*://g' \
+ > $2.$$
+rm -f $2
+cat $2.$$ \
+ | sed -e 's/^/'$out'::/g' \
+ >> $2
+echo -e '\t$(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@\n' \
+ >> $2
+cat $2.$$ \
+ | sed -e 's/ */\n/g' \
+ | sed -e 's/$/::;/g' \
+ | sed -e 's/^::;$//g' \
+ >> $2
+rm -f $2.$$
diff --git a/Makefile b/Makefile
index ad97c5a..4e00191 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,3 @@
-CXX = g++
-CXXFLAGS = -g -I./
ASCIIDOC = asciidoc
ASCIIDOC_FLAGS = -a toc2 -a data-uri -a max-width=70em\
@@ -9,39 +7,9 @@ ASCIIDOC_FLAGS = -a toc2 -a data-uri -a max-width=70em\
README = README.asciidoc
README_HTML = README.html
-TEST = _test
-TESTS = meowpp
-
-
-
-all: $(TESTS)
-
readme:
./readme_generate.py $(README)
$(ASCIIDOC) $(ASCIIDOC_FLAGS) -o $(README_HTML) $(README)
-$(TEST)/meowpp: $(TEST)/meowpp.o \
- $(TEST)/meowpp_Colors.o \
- $(TEST)/meowpp_DisjointSet.o \
- $(TEST)/meowpp_KD_Tree.o \
- $(TEST)/meowpp_SegmentTree.o \
- $(TEST)/meowpp_BinaryIndexTree.o \
- $(TEST)/meowpp_MergeableHeap.o \
- $(TEST)/meowpp_SplayTree.o \
- $(TEST)/meowpp_SplayTree_Range.o \
- $(TEST)/meowpp_Matrix.o \
- $(TEST)/meowpp_VP_Tree.o \
-
- $(CXX) -o $@ $(CXXFLAGS) $^
-
-%.o: %.cpp
- $(CXX) -c -o $@ $(CXXFLAGS) $^
-
-$(TESTS): %: $(TEST)/%
- $^
-
clean:
- -rm -f $(foreach i,$(TESTS),$(TEST)/$i)
- -rm -f $(TEST)/*.o
- -rm -f $(README)
-rm -f $(README) $(README_HTML)
diff --git a/README.html b/README.html
index f2f5c5c..26b5af2 100644
--- a/README.html
+++ b/README.html
@@ -3071,7 +3071,7 @@ E-Mail: cat.hook31894 ~在~ gmail.com
<div id="footnotes"><hr></div>
<div id="footer">
<div id="footer-text">
-Last updated 2014-05-02 01:28:05 CST
+Last updated 2014-05-02 04:08:38 CST
</div>
</div>
</body>
diff --git a/_test/.gitignore b/_test/.gitignore
deleted file mode 100644
index 4395672..0000000
--- a/_test/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-meowpp
-*.o
diff --git a/header.asciidoc b/header.asciidoc
index 6f4c2e1..1ed6570 100644
--- a/header.asciidoc
+++ b/header.asciidoc
@@ -14,9 +14,7 @@
* *utility.h* some useful functions,
`stringPringf()` , `stringReplace()` , `cstringEndWith()` ,
- `debugPrintf()` , `messagePrintf()` , `constant PI` ,
- `noEPS()` , `normalize()` , `denormalize()` ,
- `ratioMapping()` , `inRange()` , `squ()` , `average()`
+ `debugPrintf()` , `messagePrintf()` , `filenameCompare()`
* *Usage.h* `class Usage`
* *colors/* Color splces and transformer
** *RGB.h* `class RGBi` , `class RGBf`
@@ -39,14 +37,19 @@
** *Vector2D.h* `Vector2D<Scalar>`
** *Vector3D.h* `Vector3D<Scalar>`
* *math/*
+** *utility.h* some useful functions,
+ `constant PI` ,
+ `noEPS()` , `normalize()` , `denormalize()` ,
+ `ratioMapping()` , `inRange()` , `squ()` , `average()`
** *LinearTransformation.h* `LinearTransformation<Scalar>`
** *LinearTransformations.h* `Rotation3D<Scalar>`
** *Matrix.h* `Matrix<Entry>`
** *Transformation.h* `Transformation<Scalar>`
** *Transformations.h* `BallProjection<Scalar>`, `PhotoProjection<Scalar>`
* *oo/*
-** *Register_Implement.h* `class RegisterInterface` ,
- `class ImplementInterface`
+** *ObjBase.h* `class ObjBase`
+** *ObjSelector.h* `class ObjBase<size_t id>`
+** *Properties.h* `class Properties`
== Structures/Classes/Functions
diff --git a/meowpp.test/.gitignore b/meowpp.test/.gitignore
new file mode 100644
index 0000000..37272fe
--- /dev/null
+++ b/meowpp.test/.gitignore
@@ -0,0 +1,2 @@
+obj/*
+bin/*
diff --git a/meowpp.test/GNUmakefile b/meowpp.test/GNUmakefile
new file mode 120000
index 0000000..b62d958
--- /dev/null
+++ b/meowpp.test/GNUmakefile
@@ -0,0 +1 @@
+../GNUmakefile/GNUmakefile \ No newline at end of file
diff --git a/meowpp.test/GNUmakefile.dependency.bash b/meowpp.test/GNUmakefile.dependency.bash
new file mode 120000
index 0000000..c2558c7
--- /dev/null
+++ b/meowpp.test/GNUmakefile.dependency.bash
@@ -0,0 +1 @@
+../GNUmakefile/GNUmakefile.dependency.bash \ No newline at end of file
diff --git a/meowpp.test/GNUmakefile.targets b/meowpp.test/GNUmakefile.targets
new file mode 100644
index 0000000..1fba995
--- /dev/null
+++ b/meowpp.test/GNUmakefile.targets
@@ -0,0 +1,8 @@
+
+TARGETS := $(TARGETS) $(BIN)/dsa
+dsa_OBJS := $(OBJ)/BinaryIndexTree.o $(OBJ)/DisjointSet.o $(OBJ)/KD_Tree.o $(OBJ)/MergeableHeap.o $(OBJ)/SegmentTree.o $(OBJ)/SplayTree.o $(OBJ)/SplayTree_Range.o $(OBJ)/VP_Tree.o
+dsa_LIBS :=
+$(BIN)/dsa: $(OBJ)/dsa.o $(dsa_OBJS)
+ @echo Target: $@...
+ @$(CXX) $^ $(CXXFLAGS) `pkg-config --cflags --libs $(dsa_LIBS) 2>/dev/null` -o $@
+
diff --git a/meowpp.test/dep/BinaryIndexTree.d b/meowpp.test/dep/BinaryIndexTree.d
new file mode 100644
index 0000000..9d65fb9
--- /dev/null
+++ b/meowpp.test/dep/BinaryIndexTree.d
@@ -0,0 +1,33 @@
+dep/BinaryIndexTree.d:: src/BinaryIndexTree.cpp inc/meowpp/dsa/BinaryIndexTree.h inc/meowpp/dsa/BinaryIndexTree.hpp inc/meowpp/dsa/BinaryIndexTree.h inc/meowpp/utility.h inc/meowpp/utility.hpp inc/meowpp/utility.h inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/../math/Matrix.hpp inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/../math/utility.hpp inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/geo/Vector3D.hpp inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/BinaryIndexTree.cpp::;
+inc/meowpp/dsa/BinaryIndexTree.h::;
+inc/meowpp/dsa/BinaryIndexTree.hpp::;
+inc/meowpp/dsa/BinaryIndexTree.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/utility.hpp::;
+inc/meowpp/utility.h::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/../math/Matrix.hpp::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/../math/utility.hpp::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/geo/Vector3D.hpp::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
diff --git a/meowpp.test/dep/Colors.d b/meowpp.test/dep/Colors.d
new file mode 100644
index 0000000..eef06e4
--- /dev/null
+++ b/meowpp.test/dep/Colors.d
@@ -0,0 +1,47 @@
+dep/Colors.d:: src/Colors.cpp inc/meowpp/colors/RGB.h inc/meowpp/colors/../geo/Vector3D.h inc/meowpp/colors/../geo/../math/Matrix.h inc/meowpp/colors/../geo/../math/Matrix.hpp inc/meowpp/colors/../geo/../math/Matrix.h inc/meowpp/colors/../geo/Vector3D.hpp inc/meowpp/colors/../geo/Vector3D.h inc/meowpp/colors/../geo/../math/utility.h inc/meowpp/colors/../geo/../math/utility.hpp inc/meowpp/colors/../geo/../math/utility.h inc/meowpp/colors/RGB.hpp inc/meowpp/colors/RGB.h inc/meowpp/colors/../math/utility.h inc/meowpp/colors/../math/Matrix.h inc/meowpp/colors/YUV.h inc/meowpp/colors/YUV.hpp inc/meowpp/colors/YUV.h inc/meowpp/colors/HSL.h inc/meowpp/colors/HSL.hpp inc/meowpp/colors/HSL.h inc/meowpp/colors/HSV.h inc/meowpp/colors/HSV.hpp inc/meowpp/colors/HSV.h inc/meowpp/utility.h inc/meowpp/utility.hpp inc/meowpp/utility.h inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/Colors.cpp::;
+inc/meowpp/colors/RGB.h::;
+inc/meowpp/colors/../geo/Vector3D.h::;
+inc/meowpp/colors/../geo/../math/Matrix.h::;
+inc/meowpp/colors/../geo/../math/Matrix.hpp::;
+inc/meowpp/colors/../geo/../math/Matrix.h::;
+inc/meowpp/colors/../geo/Vector3D.hpp::;
+inc/meowpp/colors/../geo/Vector3D.h::;
+inc/meowpp/colors/../geo/../math/utility.h::;
+inc/meowpp/colors/../geo/../math/utility.hpp::;
+inc/meowpp/colors/../geo/../math/utility.h::;
+inc/meowpp/colors/RGB.hpp::;
+inc/meowpp/colors/RGB.h::;
+inc/meowpp/colors/../math/utility.h::;
+inc/meowpp/colors/../math/Matrix.h::;
+inc/meowpp/colors/YUV.h::;
+inc/meowpp/colors/YUV.hpp::;
+inc/meowpp/colors/YUV.h::;
+inc/meowpp/colors/HSL.h::;
+inc/meowpp/colors/HSL.hpp::;
+inc/meowpp/colors/HSL.h::;
+inc/meowpp/colors/HSV.h::;
+inc/meowpp/colors/HSV.hpp::;
+inc/meowpp/colors/HSV.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/utility.hpp::;
+inc/meowpp/utility.h::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
diff --git a/meowpp.test/dep/DisjointSet.d b/meowpp.test/dep/DisjointSet.d
new file mode 100644
index 0000000..c78c810
--- /dev/null
+++ b/meowpp.test/dep/DisjointSet.d
@@ -0,0 +1,32 @@
+dep/DisjointSet.d:: src/DisjointSet.cpp inc/meowpp/dsa/DisjointSet.h inc/meowpp/dsa/DisjointSet.hpp inc/meowpp/dsa/DisjointSet.h inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/../math/Matrix.hpp inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/../math/utility.hpp inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/geo/Vector3D.hpp inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/utility.h inc/meowpp/utility.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/DisjointSet.cpp::;
+inc/meowpp/dsa/DisjointSet.h::;
+inc/meowpp/dsa/DisjointSet.hpp::;
+inc/meowpp/dsa/DisjointSet.h::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/../math/Matrix.hpp::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/../math/utility.hpp::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/geo/Vector3D.hpp::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/utility.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
diff --git a/meowpp.test/dep/KD_Tree.d b/meowpp.test/dep/KD_Tree.d
new file mode 100644
index 0000000..3200809
--- /dev/null
+++ b/meowpp.test/dep/KD_Tree.d
@@ -0,0 +1,36 @@
+dep/KD_Tree.d:: src/KD_Tree.cpp inc/meowpp/dsa/KD_Tree.h inc/meowpp/dsa/KD_Tree.hpp inc/meowpp/dsa/KD_Tree.h inc/meowpp/dsa/../utility.h inc/meowpp/dsa/../utility.hpp inc/meowpp/dsa/../utility.h inc/meowpp/dsa/../math/utility.h inc/meowpp/dsa/../math/utility.hpp inc/meowpp/dsa/../math/utility.h inc/meowpp/utility.h inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/../math/Matrix.hpp inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/geo/Vector3D.hpp inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/utility.h inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/KD_Tree.cpp::;
+inc/meowpp/dsa/KD_Tree.h::;
+inc/meowpp/dsa/KD_Tree.hpp::;
+inc/meowpp/dsa/KD_Tree.h::;
+inc/meowpp/dsa/../utility.h::;
+inc/meowpp/dsa/../utility.hpp::;
+inc/meowpp/dsa/../utility.h::;
+inc/meowpp/dsa/../math/utility.h::;
+inc/meowpp/dsa/../math/utility.hpp::;
+inc/meowpp/dsa/../math/utility.h::;
+inc/meowpp/utility.h::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/../math/Matrix.hpp::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/geo/Vector3D.hpp::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
diff --git a/meowpp.test/dep/Matrix.d b/meowpp.test/dep/Matrix.d
new file mode 100644
index 0000000..27f106e
--- /dev/null
+++ b/meowpp.test/dep/Matrix.d
@@ -0,0 +1,30 @@
+dep/Matrix.d:: src/Matrix.cpp inc/meowpp/math/Matrix.h inc/meowpp/math/Matrix.hpp inc/meowpp/math/Matrix.h inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/../math/utility.hpp inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/geo/Vector3D.hpp inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/utility.h inc/meowpp/utility.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/Matrix.cpp::;
+inc/meowpp/math/Matrix.h::;
+inc/meowpp/math/Matrix.hpp::;
+inc/meowpp/math/Matrix.h::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/../math/utility.hpp::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/geo/Vector3D.hpp::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/utility.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
diff --git a/meowpp.test/dep/MergeableHeap.d b/meowpp.test/dep/MergeableHeap.d
new file mode 100644
index 0000000..a350868
--- /dev/null
+++ b/meowpp.test/dep/MergeableHeap.d
@@ -0,0 +1,33 @@
+dep/MergeableHeap.d:: src/MergeableHeap.cpp inc/meowpp/dsa/MergeableHeap.h inc/meowpp/dsa/MergeableHeap.hpp inc/meowpp/dsa/MergeableHeap.h inc/meowpp/utility.h inc/meowpp/utility.hpp inc/meowpp/utility.h inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/../math/Matrix.hpp inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/../math/utility.hpp inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/geo/Vector3D.hpp inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/MergeableHeap.cpp::;
+inc/meowpp/dsa/MergeableHeap.h::;
+inc/meowpp/dsa/MergeableHeap.hpp::;
+inc/meowpp/dsa/MergeableHeap.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/utility.hpp::;
+inc/meowpp/utility.h::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/../math/Matrix.hpp::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/../math/utility.hpp::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/geo/Vector3D.hpp::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
diff --git a/meowpp.test/dep/SegmentTree.d b/meowpp.test/dep/SegmentTree.d
new file mode 100644
index 0000000..bda120e
--- /dev/null
+++ b/meowpp.test/dep/SegmentTree.d
@@ -0,0 +1,34 @@
+dep/SegmentTree.d:: src/SegmentTree.cpp inc/meowpp/dsa/SegmentTree.h inc/meowpp/dsa/SegmentTree.hpp inc/meowpp/dsa/SegmentTree.h inc/meowpp/dsa/../math/utility.h inc/meowpp/dsa/../math/utility.hpp inc/meowpp/dsa/../math/utility.h inc/meowpp/utility.h inc/meowpp/utility.hpp inc/meowpp/utility.h inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/../math/Matrix.hpp inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/geo/Vector3D.hpp inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/SegmentTree.cpp::;
+inc/meowpp/dsa/SegmentTree.h::;
+inc/meowpp/dsa/SegmentTree.hpp::;
+inc/meowpp/dsa/SegmentTree.h::;
+inc/meowpp/dsa/../math/utility.h::;
+inc/meowpp/dsa/../math/utility.hpp::;
+inc/meowpp/dsa/../math/utility.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/utility.hpp::;
+inc/meowpp/utility.h::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/../math/Matrix.hpp::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/geo/Vector3D.hpp::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
diff --git a/meowpp.test/dep/SplayTree.d b/meowpp.test/dep/SplayTree.d
new file mode 100644
index 0000000..79a1502
--- /dev/null
+++ b/meowpp.test/dep/SplayTree.d
@@ -0,0 +1,33 @@
+dep/SplayTree.d:: src/SplayTree.cpp inc/meowpp/dsa/SplayTree.h inc/meowpp/dsa/SplayTree.hpp inc/meowpp/dsa/SplayTree.h inc/meowpp/utility.h inc/meowpp/utility.hpp inc/meowpp/utility.h inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/../math/Matrix.hpp inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/../math/utility.hpp inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/geo/Vector3D.hpp inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/SplayTree.cpp::;
+inc/meowpp/dsa/SplayTree.h::;
+inc/meowpp/dsa/SplayTree.hpp::;
+inc/meowpp/dsa/SplayTree.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/utility.hpp::;
+inc/meowpp/utility.h::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/../math/Matrix.hpp::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/../math/utility.hpp::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/geo/Vector3D.hpp::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
diff --git a/meowpp.test/dep/SplayTree_Range.d b/meowpp.test/dep/SplayTree_Range.d
new file mode 100644
index 0000000..e16c7a3
--- /dev/null
+++ b/meowpp.test/dep/SplayTree_Range.d
@@ -0,0 +1,34 @@
+dep/SplayTree_Range.d:: src/SplayTree_Range.cpp inc/meowpp/dsa/SplayTree_Range.h inc/meowpp/dsa/../math/utility.h inc/meowpp/dsa/../math/utility.hpp inc/meowpp/dsa/../math/utility.h inc/meowpp/dsa/SplayTree_Range.hpp inc/meowpp/dsa/SplayTree_Range.h inc/meowpp/utility.h inc/meowpp/utility.hpp inc/meowpp/utility.h inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/../math/Matrix.hpp inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/geo/Vector3D.hpp inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/SplayTree_Range.cpp::;
+inc/meowpp/dsa/SplayTree_Range.h::;
+inc/meowpp/dsa/../math/utility.h::;
+inc/meowpp/dsa/../math/utility.hpp::;
+inc/meowpp/dsa/../math/utility.h::;
+inc/meowpp/dsa/SplayTree_Range.hpp::;
+inc/meowpp/dsa/SplayTree_Range.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/utility.hpp::;
+inc/meowpp/utility.h::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/../math/Matrix.hpp::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/geo/Vector3D.hpp::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
diff --git a/meowpp.test/dep/VP_Tree.d b/meowpp.test/dep/VP_Tree.d
new file mode 100644
index 0000000..30cbd22
--- /dev/null
+++ b/meowpp.test/dep/VP_Tree.d
@@ -0,0 +1,39 @@
+dep/VP_Tree.d:: src/VP_Tree.cpp inc/meowpp/dsa/VP_Tree.h inc/meowpp/dsa/../math/utility.h inc/meowpp/dsa/../math/utility.hpp inc/meowpp/dsa/../math/utility.h inc/meowpp/dsa/VP_Tree.hpp inc/meowpp/dsa/VP_Tree.h inc/meowpp/dsa/KD_Tree.h inc/meowpp/dsa/KD_Tree.hpp inc/meowpp/dsa/KD_Tree.h inc/meowpp/dsa/../utility.h inc/meowpp/dsa/../utility.hpp inc/meowpp/dsa/../utility.h inc/meowpp/utility.h inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/../math/Matrix.hpp inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/geo/Vector3D.hpp inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/utility.h inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/VP_Tree.cpp::;
+inc/meowpp/dsa/VP_Tree.h::;
+inc/meowpp/dsa/../math/utility.h::;
+inc/meowpp/dsa/../math/utility.hpp::;
+inc/meowpp/dsa/../math/utility.h::;
+inc/meowpp/dsa/VP_Tree.hpp::;
+inc/meowpp/dsa/VP_Tree.h::;
+inc/meowpp/dsa/KD_Tree.h::;
+inc/meowpp/dsa/KD_Tree.hpp::;
+inc/meowpp/dsa/KD_Tree.h::;
+inc/meowpp/dsa/../utility.h::;
+inc/meowpp/dsa/../utility.hpp::;
+inc/meowpp/dsa/../utility.h::;
+inc/meowpp/utility.h::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/../math/Matrix.hpp::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/geo/Vector3D.hpp::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
diff --git a/meowpp.test/dep/dsa.d b/meowpp.test/dep/dsa.d
new file mode 100644
index 0000000..e2db740
--- /dev/null
+++ b/meowpp.test/dep/dsa.d
@@ -0,0 +1,30 @@
+dep/dsa.d:: src/dsa.cpp inc/meowpp.h inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/../math/Matrix.hpp inc/meowpp/geo/../math/Matrix.h inc/meowpp/geo/Vector2D.hpp inc/meowpp/geo/Vector2D.h inc/meowpp/geo/../math/utility.h inc/meowpp/geo/../math/utility.hpp inc/meowpp/geo/../math/utility.h inc/meowpp/geo/Vector3D.h inc/meowpp/geo/Vector3D.hpp inc/meowpp/geo/Vector3D.h inc/meowpp/Usage.h inc/meowpp/Usage.hpp inc/meowpp/Usage.h inc/meowpp/utility.h inc/meowpp/utility.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/Properties.hpp inc/meowpp/oo/Properties.h inc/meowpp/oo/ObjBase.h inc/meowpp/oo/ObjSelector.h inc/meowpp/Usage.h
+ $(DEPENDENCY_CREATER) "`$(CXX_DEP) $(CXXFLAGS) $<`" $@
+
+
+src/dsa.cpp::;
+inc/meowpp.h::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/../math/Matrix.hpp::;
+inc/meowpp/geo/../math/Matrix.h::;
+inc/meowpp/geo/Vector2D.hpp::;
+inc/meowpp/geo/Vector2D.h::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/../math/utility.hpp::;
+inc/meowpp/geo/../math/utility.h::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/geo/Vector3D.hpp::;
+inc/meowpp/geo/Vector3D.h::;
+inc/meowpp/Usage.h::;
+inc/meowpp/Usage.hpp::;
+inc/meowpp/Usage.h::;
+inc/meowpp/utility.h::;
+inc/meowpp/utility.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/Properties.hpp::;
+inc/meowpp/oo/Properties.h::;
+inc/meowpp/oo/ObjBase.h::;
+inc/meowpp/oo/ObjSelector.h::;
+inc/meowpp/Usage.h::;
diff --git a/meowpp.test/inc/meowpp b/meowpp.test/inc/meowpp
new file mode 120000
index 0000000..304fa84
--- /dev/null
+++ b/meowpp.test/inc/meowpp
@@ -0,0 +1 @@
+../../meowpp \ No newline at end of file
diff --git a/_test/meowpp.h b/meowpp.test/inc/meowpp.h
index 8e6e181..8e6e181 100644
--- a/_test/meowpp.h
+++ b/meowpp.test/inc/meowpp.h
diff --git a/_test/meowpp_BinaryIndexTree.cpp b/meowpp.test/src/BinaryIndexTree.cpp
index 0b81f10..0b81f10 100644
--- a/_test/meowpp_BinaryIndexTree.cpp
+++ b/meowpp.test/src/BinaryIndexTree.cpp
diff --git a/_test/meowpp_Colors.cpp b/meowpp.test/src/Colors.cpp
index 3233cf6..3233cf6 100644
--- a/_test/meowpp_Colors.cpp
+++ b/meowpp.test/src/Colors.cpp
diff --git a/_test/meowpp_DisjointSet.cpp b/meowpp.test/src/DisjointSet.cpp
index 41ca7d2..ca9db24 100644
--- a/_test/meowpp_DisjointSet.cpp
+++ b/meowpp.test/src/DisjointSet.cpp
@@ -15,7 +15,7 @@ TEST(DisjointSet, "..."){
}
int root = dsj.root(0);
for(int i = 1; i < N; i++){
- if(root != dsj.root(i)){
+ if(root != (int)dsj.root(i)){
meow::messagePrintf(-1, "fail");
return false;
}
@@ -30,7 +30,7 @@ TEST(DisjointSet, "..."){
}
root = dsj.root(0);
for(int i = 1; i < N; i++){
- if(root != dsj.root(i)){
+ if(root != (int)dsj.root(i)){
meow::messagePrintf(-1, "fail");
return false;
}
@@ -65,7 +65,7 @@ TEST(DisjointSet, "..."){
}
for(int i = 0; i < N; i++){
bool ok = false;
- if(used[i] == -1 && dsj.root(i) == i){
+ if((int)used[i] == -1 && (int)dsj.root(i) == i){
ok = true;
}else{
if(dsj.root(i) == dsj.root(nums[used[i]][0])){
diff --git a/_test/meowpp_KD_Tree.cpp b/meowpp.test/src/KD_Tree.cpp
index 25c18b0..1a61238 100644
--- a/_test/meowpp_KD_Tree.cpp
+++ b/meowpp.test/src/KD_Tree.cpp
@@ -56,6 +56,7 @@ static void find(std::vector<double> const& v, int k){
static std::vector<double> v;
+/*
static bool sf(const int& a, const int& b){
if(dist[a] != dist[b])
return (dist[a] < dist[b]);
@@ -107,6 +108,7 @@ static void show(std::vector<double> const& ask, std::vector<int> kd, std::vecto
}
}
}
+// */
struct Node{
std::vector<double> v;
@@ -144,7 +146,6 @@ TEST(KD_Tree, "It is very slow"){
meow::messagePrintf(1, "query...");
v.resize(D);
meow::KD_Tree<Node, double>::Vectors ret;
- int id;
for(int k = 1; k <= std::min(100, N); k++){
meow::messagePrintf(1, "range k = %d", k);
t1 = t2 = 0;
@@ -163,7 +164,7 @@ TEST(KD_Tree, "It is very slow"){
t0 = clock();
find(v, k);
t2 += clock() - t0;
- if(ret.size() != std::min(k, N)){
+ if((int)ret.size() != (int)std::min(k, N)){
meow::messagePrintf(-1, "(%d)query fail, size error", i);
meow::messagePrintf(-1, "fail");
return false;
diff --git a/_test/meowpp_Matrix.cpp b/meowpp.test/src/Matrix.cpp
index 6ef94b7..6ef94b7 100644
--- a/_test/meowpp_Matrix.cpp
+++ b/meowpp.test/src/Matrix.cpp
diff --git a/_test/meowpp_MergeableHeap.cpp b/meowpp.test/src/MergeableHeap.cpp
index 78eed00..78eed00 100644
--- a/_test/meowpp_MergeableHeap.cpp
+++ b/meowpp.test/src/MergeableHeap.cpp
diff --git a/_test/meowpp_SegmentTree.cpp b/meowpp.test/src/SegmentTree.cpp
index f92f55f..f92f55f 100644
--- a/_test/meowpp_SegmentTree.cpp
+++ b/meowpp.test/src/SegmentTree.cpp
diff --git a/_test/meowpp_SplayTree.cpp b/meowpp.test/src/SplayTree.cpp
index 96c5807..9855307 100644
--- a/_test/meowpp_SplayTree.cpp
+++ b/meowpp.test/src/SplayTree.cpp
@@ -28,8 +28,7 @@ static void show(bool fg = false){
}
printf("\n");
printf("splay %d-%lu: ", i, splay[i].size());
- bool bye = false;
- for(int j = 0; j < splay[i].size(); j++){
+ for(size_t j = 0; j < splay[i].size(); j++){
IterS it = splay[i].order(j);
printf("%d/%.2f ", it->first, it->second);
}
@@ -188,6 +187,7 @@ static bool first_last(int i, size_t* tN, size_t* tS){
}
return true;
}
+/*
static bool insert(int i, int key, double val, size_t* tN, size_t* tS){
size_t t0;
if(rand() & 1){
@@ -201,6 +201,7 @@ static bool insert(int i, int key, double val, size_t* tN, size_t* tS){
show(detail_fg);
return true;
}
+// */
static bool split(int i, int j, int key, size_t* tN, size_t* tS){
size_t t0;
if(i == j){
@@ -250,7 +251,7 @@ static bool merge(int i, int j, int key, size_t* tN, size_t* tS){
normal[j].clear();
}
*tN += clock() - t0;
- detail_fg && printf("============= merge(%d, %d)\n", i, j, key);
+ detail_fg && printf("============= merge(%d, %d)\n", i, j);
show(detail_fg);
return true;
}
diff --git a/_test/meowpp_SplayTree_Range.cpp b/meowpp.test/src/SplayTree_Range.cpp
index 7df650a..085b5bf 100644
--- a/_test/meowpp_SplayTree_Range.cpp
+++ b/meowpp.test/src/SplayTree_Range.cpp
@@ -14,8 +14,8 @@ struct Double{
double k;
Double(): k(0){ }
Double(double _k): k(0){ }
- bool operator==(const Double& b) const{ fabs(k - b.k) <= 1e-9; }
- bool operator!=(const Double& b) const{ fabs(k - b.k) > 1e-9; }
+ bool operator==(const Double& b) const{ return fabs(k - b.k) <= 1e-9; }
+ bool operator!=(const Double& b) const{ return fabs(k - b.k) > 1e-9; }
bool operator<(const Double& b) const{ return k < b.k; }
Double operator+(const Double& b) const{ return Double(k + b.k); }
Double operator*(size_t& b) const{
@@ -48,8 +48,7 @@ static void show(bool fg = false){
}
printf("\n");
printf("splay %d-%lu: ", i, splay[i].size());
- bool bye = false;
- for(int j = 0; j < splay[i].size(); j++){
+ for(size_t j = 0; j < splay[i].size(); j++){
IterS it = splay[i].order(j);
printf("%d/%.2f ", it->first, it->second.k);
}
@@ -270,7 +269,7 @@ static bool merge(int i, int j, int key, size_t* tN, size_t* tS){
normal[j].clear();
}
*tN += clock() - t0;
- detail_fg && printf("============= merge(%d, %d)\n", i, j, key);
+ detail_fg && printf("============= merge(%d, %d)\n", i, j);
show(detail_fg);
return true;
}
@@ -324,7 +323,7 @@ static bool query(int i, int a, int b, size_t* tN, size_t* tS){
size_t t0;
detail_fg && printf("============= query(%d, %d, %d)\n", i, a, b);
Double ans1, ans2 = 0;
- if(rand() & 3 == 3){
+ if((rand() & 3) == 3){
t0 = clock(); ans1 = splay[i].query(); (*tS) += clock() - t0;
t0 = clock();
for(IterN it = normal[i].begin(); it != normal[i].end(); it++){
diff --git a/_test/meowpp_VP_Tree.cpp b/meowpp.test/src/VP_Tree.cpp
index 503cde6..c30b118 100644
--- a/_test/meowpp_VP_Tree.cpp
+++ b/meowpp.test/src/VP_Tree.cpp
@@ -2,6 +2,7 @@
#include "meowpp/dsa/KD_Tree.h"
#include "meowpp/utility.h"
+
#include "meowpp.h"
#include <vector>
@@ -62,14 +63,14 @@ void show(MyVector const& v, std::vector<MyVector> const& r1, std::vector<MyVect
printf("%8lld ", v[j]);
printf("\n");
printf("---------\n");
- for(int i = 0; i < r1.size(); i++){
+ for(size_t i = 0; i < r1.size(); i++){
printf("%3d) ", r1[i].w);
for(int j = 0; j < D; j++)
printf("%8lld ", r1[i][j]);
printf(" ===> %lld\n", dist2(r1[i], v));
}
printf("---------\n");
- for(int i = 0; i < r2.size(); i++){
+ for(size_t i = 0; i < r2.size(); i++){
printf("%3d) ", r2[i].w);
for(int j = 0; j < D; j++)
printf("%8lld ", r2[i][j]);
diff --git a/_test/meowpp.cpp b/meowpp.test/src/dsa.cpp
index c380098..c380098 100644
--- a/_test/meowpp.cpp
+++ b/meowpp.test/src/dsa.cpp
diff --git a/meowpp/dsa/KD_Tree.h b/meowpp/dsa/KD_Tree.h
index b4e579c..dcb60a7 100644
--- a/meowpp/dsa/KD_Tree.h
+++ b/meowpp/dsa/KD_Tree.h
@@ -75,7 +75,7 @@ namespace meow{
void query(Vector const& __vector,
size_t __nearestNumber,
AnswerCompare const& __answerCompare,
- size_t __index,
+ ssize_t __index,
int __depth,
std::vector<Scalar>& __dist2Vector,
Scalar __dist2Minimum,
diff --git a/meowpp/dsa/KD_Tree.hpp b/meowpp/dsa/KD_Tree.hpp
index 735d4af..824b917 100644
--- a/meowpp/dsa/KD_Tree.hpp
+++ b/meowpp/dsa/KD_Tree.hpp
@@ -84,14 +84,14 @@ namespace meow{
////////////////////////////////////////////////////////////////////
template<class Vector, class Scalar>
inline void
- KD_Tree<Vector, Scalar>::query(Vector const& __vector,
- size_t __nearestNumber,
+ KD_Tree<Vector, Scalar>::query(Vector const& __vector,
+ size_t __nearestNumber,
AnswerCompare const& __answerCompare,
- size_t __index,
- int __depth,
+ ssize_t __index,
+ int __depth,
std::vector<Scalar>& __dist2Vector,
Scalar __dist2Minimum,
- Answers *__out) const{
+ Answers* __out) const{
if(__index == _NIL) return ;
size_t cmp = __depth % _dimension;
ssize_t this_side, that_side;
@@ -144,7 +144,7 @@ namespace meow{
for(ssize_t i = mid + 1; i <= __end; i++){
__orders[which_side][__orders[cmp][i]] = 1;
}
- for(int i = 0; i < _dimension; i++){
+ for(size_t i = 0; i < _dimension; i++){
if(i == cmp) continue;
size_t left = __beg, right = mid + 1;
for(int j = __beg; j <= __end; j++){
@@ -216,10 +216,10 @@ namespace meow{
inline void
KD_Tree<Vector, Scalar>::forceBuild(){
std::vector<size_t> *orders = new std::vector<size_t>[_dimension + 2];
- for(int j = 0; j < _dimension + 2; j++){
+ for(size_t j = 0; j < _dimension + 2; j++){
orders[j].resize(_nodes.size());
}
- for(int j = 0; j < _dimension; j++){
+ for(size_t j = 0; j < _dimension; j++){
for(size_t i = 0, I = _nodes.size(); i < I; i++){
orders[j][i] = i;
}
diff --git a/meowpp/dsa/SegmentTree.hpp b/meowpp/dsa/SegmentTree.hpp
index bdd43fb..15ac0ef 100644
--- a/meowpp/dsa/SegmentTree.hpp
+++ b/meowpp/dsa/SegmentTree.hpp
@@ -70,7 +70,7 @@ namespace meow{
template<class Value>
inline bool
SegmentTree<Value>::rangeCorrect(ssize_t* __first, ssize_t* __last) const{
- if(*__last<*__first || *__last<0 || _size-1<*__first) return false;
+ if(*__last<*__first || *__last<0 || (ssize_t)_size-1<*__first) return false;
*__first = inRange((ssize_t)0, (ssize_t)_size - 1, *__first);
*__last = inRange((ssize_t)0, (ssize_t)_size - 1, *__last );
return true;
diff --git a/meowpp/dsa/VP_Tree.hpp b/meowpp/dsa/VP_Tree.hpp
index 2026050..bb6b5f1 100644
--- a/meowpp/dsa/VP_Tree.hpp
+++ b/meowpp/dsa/VP_Tree.hpp
@@ -69,8 +69,6 @@ namespace meow{
VP_Tree<Vector, Scalar>::split(ssize_t __first, ssize_t __last,
size_t __order, Vector const& __center){
ssize_t first0 = __first;
- ssize_t last0 = __last;
- ssize_t order0 = __order;
std::vector<Scalar> dist2(__last - __first + 1);
for(ssize_t i = __first; i <= __last; i++){
dist2[i - first0] = distance2(_vectors[i], __center);
@@ -79,10 +77,10 @@ namespace meow{
size_t threshold_index = __first + rand() % (__last - __first + 1);
Scalar threshold(dist2[threshold_index - first0]);
size_t large_first = __last + 1;
- for(size_t i = __first; __first <= large_first - 1; large_first--){
+ for(ssize_t i=__first; __first<=(ssize_t)large_first-1; large_first--){
if(threshold < dist2[large_first - 1 - first0]) continue;
- while(i < large_first - 1 && !(threshold < dist2[i - first0])) i++;
- if(i < large_first - 1){
+ while(i < (ssize_t)large_first-1&&!(threshold < dist2[i-first0])) i++;
+ if(i < (ssize_t)large_first - 1){
std::swap(dist2 [large_first - 1 - first0], dist2 [i - first0]);
std::swap(_vectors[large_first - 1 ], _vectors[i ]);
i++;
@@ -90,10 +88,10 @@ namespace meow{
break;
}
}
- if(large_first == __last + 1){
+ if(large_first == (size_t)__last + 1){
std::swap(dist2 [threshold_index-first0], dist2 [__last-first0]);
std::swap(_vectors[threshold_index ], _vectors[__last ]);
- if(__order == __last - __first){
+ if((ssize_t)__order == __last - __first){
__first = __last;
break;
}
@@ -182,15 +180,18 @@ namespace meow{
template<class Vector, class Scalar>
inline
VP_Tree<Vector, Scalar>::VP_Tree(VP_Tree<Vector, Scalar> const& __tree2):
- _root(dup(__tree2._root)),
_vectors(__tree2._vectors),
+ _root(dup(__tree2._root)),
_dimension(__tree2._dimension),
_needRebuild(__tree2._needRebuild){
}
template<class Vector, class Scalar>
inline
VP_Tree<Vector, Scalar>::VP_Tree(size_t __dimension):
- _root(NULL), _vectors(0), _dimension(0), _needRebuild(false){
+ _vectors(0),
+ _root(NULL),
+ _dimension(0),
+ _needRebuild(false){
reset(__dimension);
}
template<class Vector, class Scalar>
diff --git a/meowpp/oo/ObjBase.h b/meowpp/oo/ObjBase.h
index 2c8cb70..3aa99d7 100644
--- a/meowpp/oo/ObjBase.h
+++ b/meowpp/oo/ObjBase.h
@@ -1,6 +1,8 @@
#ifndef oo_ObjBase_H__
#define oo_ObjBase_H__
+#include <cstdio>
+
#include <typeinfo>
#include <string>
@@ -11,7 +13,11 @@ namespace meow{
public:
virtual ~ObjBase(){ }
//
- virtual ObjBase* create() const = 0;
+ virtual bool read (FILE* f, bool bin, unsigned int fg){ return false; }
+ virtual bool write(FILE* f, bool bin, unsigned int fg){ return false; }
+ //
+ virtual ObjBase* create() const{ return NULL; }
+ //
virtual char const* ctype() const{
static char const* ptr = typeid(*this).name();
return ptr;
diff --git a/meowpp/oo/ObjPort.h b/meowpp/oo/ObjPort.h
new file mode 100644
index 0000000..b9baf0c
--- /dev/null
+++ b/meowpp/oo/ObjPort.h
@@ -0,0 +1,18 @@
+#ifndef oo_ObjPort_H__
+#define oo_ObjPort_H__
+
+#include "ObjBase.h"
+
+#include <cstdio>
+
+namespace meow{
+ template<size_t sid>
+ class ObjPort{
+ public:
+ static ObjBase* read (FILE* __f, bool __binary);
+ static bool write(FILE* __f, bool __binary,
+ ObjBase* __obj, unsigned int __fg);
+ };
+}
+
+#endif // oo_ObjPort_H__
diff --git a/meowpp/oo/ObjPort.hpp b/meowpp/oo/ObjPort.hpp
new file mode 100644
index 0000000..d458adf
--- /dev/null
+++ b/meowpp/oo/ObjPort.hpp
@@ -0,0 +1,47 @@
+#include "ObjPort.h"
+
+#include "ObjSelector.h"
+#include "ObjBase.h"
+
+#include <cstdio>
+
+namespace meow{
+ template<size_t sid>
+ inline ObjPort::ObjBase* read(FILE* __f, bool __binary){
+ char name[1024];
+ unsigned int fg;
+ if(__binary){
+ size_t len;
+ if(fread(&len, sizeof(size_t), 1, __f) < 1) return NULL;
+ if(fread(name, sizeof(char), len, __f) < len) return NULL;
+ if(fread(&fg, sizeof(unsigned int), 1, __f) < 1) return NULL;
+ name[len] = '\0';
+ }else{
+ fscanf(__f, "%s %u", name, &fg);
+ }
+ ObjBase* ret = Selector<sid>(name);
+ if(ret->read(__f, __binary, fg) == false){
+ delete ret;
+ ret = NULL;
+ }
+ return ret;
+ }
+
+
+ template<size_t sid>
+ inline ObjPort::bool write(FILE* __f, bool __binary,
+ ObjBase* __obj, unsigned int __fg){
+ std::string name = Selector<sid>::find(__obj);
+ if(__binary){
+ size_t len = name.size();
+ if(fwrite(&len, sizeof(size_t), 1, __f) < 1) return false;
+ if(fwrite(name.c_str(), sizeof(char), len, __f) < len) return false;
+ if(fwrite(&__fg, sizeof(unsigned int), 1, __f) < len) return false;
+ }else{
+ if(fprintf(__f, "%s %u\n", name.c_str(), __fg) < 2) return false;
+ }
+ return __obj->write(__f, __binary, __fg);
+ }
+}
+
+#endif // oo_ObjPort_H__
diff --git a/meowpp/oo/ObjSelector.h b/meowpp/oo/ObjSelector.h
index e70c496..58debcb 100644
--- a/meowpp/oo/ObjSelector.h
+++ b/meowpp/oo/ObjSelector.h
@@ -34,11 +34,22 @@ namespace meow{
funcs().erase(s);
}
}
+ static ObjBase const* access(std::string s){
+ if(funcs().find(s) == funcs().end()) return NULL;
+ return funcs()[s];
+ }
static ObjBase* get(std::string s){
if(funcs().find(s) == funcs().end() || funcs()[s] == NULL)
return NULL;
return funcs()[s]->create();
}
+ static std::string find(ObjBase* o){
+ for(Funcs::iterator it = funcs().begin(); it != funcs().end(); it++)
+ if(it->second != NULL && it->second->type() == o->type()){
+ return it->first;
+ }
+ return std::string();
+ }
static Types lst(){
Types ret;
for(Funcs::iterator it = funcs().begin(); it != funcs().end(); it++)