├── src ├── Java │ ├── bin │ │ └── .gitignore │ ├── src │ │ └── com │ │ │ └── jingchen │ │ │ ├── trainer │ │ │ ├── SVDTrainer.java │ │ │ ├── SVDPlusPlusTrainer.java │ │ │ ├── Node.java │ │ │ ├── Trainer.java │ │ │ └── Main.java │ │ │ └── util │ │ │ ├── MathTool.java │ │ │ └── ConsoleHelper.java │ ├── .classpath │ ├── .project │ └── .settings │ │ └── org.eclipse.jdt.core.prefs └── C++ │ └── src │ ├── Node.h │ ├── AsymSVD.h │ ├── Constant.h │ ├── MathTool.h │ ├── Trainer.h │ ├── main.cpp │ ├── AsymSVD.cpp │ ├── Constant.cpp │ ├── MathTool.cpp │ ├── SVDTrainer.h │ ├── ConsoleHelper.h │ ├── SVDTrainer.cpp │ ├── ConsoleHelper.cpp │ ├── SVDPlusPlusTrainer.h │ └── SVDPlusPlusTrainer.cpp ├── .gitignore ├── exps ├── ASVD.png ├── RSVD.png ├── SVDPP.png ├── TASVD.png └── TSVDPP.png ├── README.md ├── .project ├── .settings ├── org.eclipse.cdt.managedbuilder.core.prefs └── org.eclipse.cdt.codan.core.prefs └── .cproject /src/Java/bin/.gitignore: -------------------------------------------------------------------------------- 1 | /com/ 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /Debug/ 2 | /Release/ 3 | -------------------------------------------------------------------------------- /exps/ASVD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/exps/ASVD.png -------------------------------------------------------------------------------- /exps/RSVD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/exps/RSVD.png -------------------------------------------------------------------------------- /exps/SVDPP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/exps/SVDPP.png -------------------------------------------------------------------------------- /exps/TASVD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/exps/TASVD.png -------------------------------------------------------------------------------- /exps/TSVDPP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/exps/TSVDPP.png -------------------------------------------------------------------------------- /src/C++/src/Node.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/Node.h -------------------------------------------------------------------------------- /src/C++/src/AsymSVD.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/AsymSVD.h -------------------------------------------------------------------------------- /src/C++/src/Constant.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/Constant.h -------------------------------------------------------------------------------- /src/C++/src/MathTool.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/MathTool.h -------------------------------------------------------------------------------- /src/C++/src/Trainer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/Trainer.h -------------------------------------------------------------------------------- /src/C++/src/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/main.cpp -------------------------------------------------------------------------------- /src/C++/src/AsymSVD.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/AsymSVD.cpp -------------------------------------------------------------------------------- /src/C++/src/Constant.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/Constant.cpp -------------------------------------------------------------------------------- /src/C++/src/MathTool.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/MathTool.cpp -------------------------------------------------------------------------------- /src/C++/src/SVDTrainer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/SVDTrainer.h -------------------------------------------------------------------------------- /src/C++/src/ConsoleHelper.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/ConsoleHelper.h -------------------------------------------------------------------------------- /src/C++/src/SVDTrainer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/SVDTrainer.cpp -------------------------------------------------------------------------------- /src/C++/src/ConsoleHelper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/ConsoleHelper.cpp -------------------------------------------------------------------------------- /src/C++/src/SVDPlusPlusTrainer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/SVDPlusPlusTrainer.h -------------------------------------------------------------------------------- /src/C++/src/SVDPlusPlusTrainer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/C++/src/SVDPlusPlusTrainer.cpp -------------------------------------------------------------------------------- /src/Java/src/com/jingchen/trainer/SVDTrainer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/Java/src/com/jingchen/trainer/SVDTrainer.java -------------------------------------------------------------------------------- /src/Java/src/com/jingchen/trainer/SVDPlusPlusTrainer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jingchenUSTC/SVDRecommenderSystem/HEAD/src/Java/src/com/jingchen/trainer/SVDPlusPlusTrainer.java -------------------------------------------------------------------------------- /src/Java/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/Java/src/com/jingchen/trainer/Node.java: -------------------------------------------------------------------------------- 1 | package com.jingchen.trainer; 2 | 3 | public class Node { 4 | private int mId; 5 | private float mRate; 6 | 7 | public Node(int id, float rate) { 8 | mId = id; 9 | mRate = rate; 10 | } 11 | 12 | public int getId() { 13 | return mId; 14 | } 15 | 16 | public float getRate() { 17 | return mRate; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Java/src/com/jingchen/trainer/Trainer.java: -------------------------------------------------------------------------------- 1 | package com.jingchen.trainer; 2 | 3 | public interface Trainer { 4 | void loadFile(String mTrainFileName, String mTestFileName, String separator) 5 | throws Exception; 6 | 7 | void loadHisFile(String mHisFileName, String separator) throws Exception; 8 | 9 | void train(float gama, float alpha, int nIter); 10 | 11 | void predict(String mOutputFileName, String separator) throws Exception; 12 | } -------------------------------------------------------------------------------- /src/Java/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | SVD 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/Java/src/com/jingchen/util/MathTool.java: -------------------------------------------------------------------------------- 1 | package com.jingchen.util; 2 | 3 | public class MathTool { 4 | private static MathTool mt; 5 | 6 | private MathTool() { 7 | 8 | } 9 | 10 | synchronized public static MathTool getInstance() { 11 | if (mt == null) 12 | mt = new MathTool(); 13 | return mt; 14 | } 15 | 16 | public float getInnerProduct(float[] x, float[] y) { 17 | float result = 0; 18 | for (int i = 0; i < x.length; i++) { 19 | result += x[i] * y[i]; 20 | } 21 | return result; 22 | } 23 | } -------------------------------------------------------------------------------- /src/Java/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=1.7 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=1.7 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SVDRecommenderSystem 2 | 将SVD应用于推荐系统中的评分预测问题 3 | 关于SVD的原理分析可以参见我的博客[奇异值分解(SVD)原理详解及推导](http://blog.csdn.net/zhongkejingwang/article/details/43053513) 4 | 关于代码中的SVD算法的推导可以看这里[SVD在推荐系统中的应用详解以及算法推导](http://blog.csdn.net/zhongkejingwang/article/details/43083603) 5 | ##RSVD预测公式: 6 | ![](https://github.com/jingchenUSTC/SVDRecommenderSystem/blob/master/exps/RSVD.png) 7 | ##ASVD预测公式: 8 | ![](https://github.com/jingchenUSTC/SVDRecommenderSystem/blob/master/exps/ASVD.png) 9 | ##SVD++预测公式: 10 | ![](https://github.com/jingchenUSTC/SVDRecommenderSystem/blob/master/exps/SVDPP.png) 11 |
通过“isTranspose”变量设置R矩阵是否转置,转置后得到原始算法的对偶算法 12 | ##对偶ASVD预测公式: 13 | ![](https://github.com/jingchenUSTC/SVDRecommenderSystem/blob/master/exps/TASVD.png) 14 | ##对偶SVD++预测公式: 15 | ![](https://github.com/jingchenUSTC/SVDRecommenderSystem/blob/master/exps/TSVDPP.png) 16 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | SVDTrainer 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder 10 | clean,full,incremental, 11 | 12 | 13 | 14 | 15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder 16 | full,incremental, 17 | 18 | 19 | 20 | 21 | 22 | org.eclipse.cdt.core.cnature 23 | org.eclipse.cdt.core.ccnature 24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature 25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/Java/src/com/jingchen/util/ConsoleHelper.java: -------------------------------------------------------------------------------- 1 | package com.jingchen.util; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class ConsoleHelper { 7 | private Map mArgMap; 8 | 9 | public ConsoleHelper(String[] args) { 10 | mArgMap = new HashMap<>(); 11 | for (int i = 0; i < args.length; i += 2) { 12 | mArgMap.put(args[i], args[i + 1]); 13 | } 14 | } 15 | 16 | public String getArg(String argName, String defaultValue) { 17 | if (mArgMap.containsKey(argName)) { 18 | return mArgMap.get(argName); 19 | } else 20 | return defaultValue; 21 | } 22 | 23 | public int getArg(String argName, int defaultValue) { 24 | if (mArgMap.containsKey(argName)) { 25 | return Integer.valueOf(mArgMap.get(argName)); 26 | } else 27 | return defaultValue; 28 | } 29 | 30 | public float getArg(String argName, float defaultValue) { 31 | if (mArgMap.containsKey(argName)) { 32 | return Float.valueOf(mArgMap.get(argName)); 33 | } else 34 | return defaultValue; 35 | } 36 | } -------------------------------------------------------------------------------- /src/Java/src/com/jingchen/trainer/Main.java: -------------------------------------------------------------------------------- 1 | package com.jingchen.trainer; 2 | 3 | import com.jingchen.util.ConsoleHelper; 4 | 5 | public class Main { 6 | public static void main(String[] args) { 7 | if (args.length < 5) { 8 | System.out 9 | .println("Usage: \n\t-train trainfile\n\t-test predictfile\n\t-his historyfile\n\t-sep separator\n\t-dim featureLength\n\t-gama gama\n\t-alpha alpha\n\t-iter iternum\n\t-out outputfile"); 10 | return; 11 | } 12 | ConsoleHelper helper = new ConsoleHelper(args); 13 | String trainfile = helper.getArg("-train", ""); 14 | String testfile = helper.getArg("-test", ""); 15 | String hisfile = helper.getArg("-his", ""); 16 | String separator = helper.getArg("-sep", "\t"); 17 | String outputfile = helper.getArg("-out", ""); 18 | int dim = helper.getArg("-dim", 8); 19 | float gama = helper.getArg("-gama", 0.006f); 20 | float alpha = helper.getArg("-alpha", 0.03f); 21 | int nIter = helper.getArg("-iter", 100); 22 | if (trainfile.equals("")) { 23 | System.out.println("please input trainfile"); 24 | return; 25 | } else if (testfile.equals("")) { 26 | System.out.println("please input testfile"); 27 | return; 28 | } 29 | Trainer trainer = new SVDPlusPlusTrainer(dim, false); 30 | try { 31 | trainer.loadFile(trainfile, testfile, separator); 32 | if (!hisfile.equals("")) 33 | trainer.loadHisFile(hisfile, separator); 34 | } catch (Exception e1) { 35 | e1.printStackTrace(); 36 | return; 37 | } 38 | trainer.train(gama, alpha, nIter); 39 | try { 40 | trainer.predict(outputfile, separator); 41 | } catch (Exception e) { 42 | e.printStackTrace(); 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /.settings/org.eclipse.cdt.managedbuilder.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/CPATH/delimiter=; 3 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/CPATH/operation=remove 4 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/CPLUS_INCLUDE_PATH/delimiter=; 5 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/CPLUS_INCLUDE_PATH/operation=remove 6 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/C_INCLUDE_PATH/delimiter=; 7 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/C_INCLUDE_PATH/operation=remove 8 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/append=true 9 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/appendContributed=true 10 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/CPATH/delimiter=; 11 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/CPATH/operation=remove 12 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/CPLUS_INCLUDE_PATH/delimiter=; 13 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/CPLUS_INCLUDE_PATH/operation=remove 14 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/C_INCLUDE_PATH/delimiter=; 15 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/C_INCLUDE_PATH/operation=remove 16 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/append=true 17 | environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/appendContributed=true 18 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/LIBRARY_PATH/delimiter=; 19 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/LIBRARY_PATH/operation=remove 20 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/append=true 21 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.debug.1205959790/appendContributed=true 22 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/LIBRARY_PATH/delimiter=; 23 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/LIBRARY_PATH/operation=remove 24 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/append=true 25 | environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.mingw.exe.release.1143626764/appendContributed=true 26 | -------------------------------------------------------------------------------- /.settings/org.eclipse.cdt.codan.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.cdt.codan.checkers.errnoreturn=Warning 3 | org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false} 4 | org.eclipse.cdt.codan.checkers.errreturnvalue=Error 5 | org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 6 | org.eclipse.cdt.codan.checkers.noreturn=Error 7 | org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false} 8 | org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error 9 | org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 10 | org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error 11 | org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 12 | org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning 13 | org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 14 | org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error 15 | org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 16 | org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning 17 | org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false} 18 | org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning 19 | org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()} 20 | org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error 21 | org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 22 | org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning 23 | org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true} 24 | org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error 25 | org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 26 | org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error 27 | org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 28 | org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error 29 | org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 30 | org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error 31 | org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 32 | org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error 33 | org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 34 | org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error 35 | org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 36 | org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error 37 | org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 38 | org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info 39 | org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} 40 | org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning 41 | org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 42 | org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error 43 | org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 44 | org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error 45 | org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 46 | org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error 47 | org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 48 | org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning 49 | org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 50 | org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning 51 | org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 52 | org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning 53 | org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()} 54 | org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning 55 | org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false} 56 | org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning 57 | org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false} 58 | org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error 59 | org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 60 | org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning 61 | org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true} 62 | org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning 63 | org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true} 64 | org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning 65 | org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")} 66 | org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error 67 | org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} 68 | -------------------------------------------------------------------------------- /.cproject: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 29 | 30 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 76 | 77 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | --------------------------------------------------------------------------------