コード例 #1
0
ファイル: ADMMCut.cpp プロジェクト: lock794779857/FrameFab
void ADMMCut::CreateC(int cut, int rew)
{
	C_.resize(Md_, Md_);
	vector<Triplet<double>> C_list;
	vector<double> v_r;
	vector<double> v_c;

	for (int i = 0; i < Md_; i++)
	{
		int u = ptr_dualgraph_->u(i);
		int v = ptr_dualgraph_->v(i);
		C_list.push_back(Triplet<double>(i, i, pow(ptr_dualgraph_->Weight(i), 2) * r_(u, v)));
		v_r.push_back(r_(u, v));
		v_c.push_back(pow(ptr_dualgraph_->Weight(i), 2) * r_(u, v));
	}
	C_.setFromTriplets(C_list.begin(), C_list.end());

	string str_c = "Cut_" + to_string(cut) + "_Rew_" + to_string(rew) + "_C";
	Statistics s_c(str_c, v_c);
	s_c.GenerateStdVecFile();

	//string str_r = "Cut_" + to_string(cut) + "_Rew_" + to_string(rew) + "_R";
	//Statistics s_r(str_r, v_r);
	//s_r.GenerateStdVecFile();

	H1_ = SpMat(Nd_, Nd_);
	H1_ = A_.transpose() * C_ * A_;
}
コード例 #2
0
ファイル: main.cpp プロジェクト: nitish712/Sudoku-Solver
int main()
{
	Board p;
	
	SingleCandidate s_c(&p);
	SinglePosition s_p(&p);
	CandidateLines c_l(&p);
	NakedPairs n_p(&p);

	int level = 1;
	getchar();
	int changd = 0;
	while(1){
		again:
			p.display();
			getchar();
			if(s_c.perform_op()){
				changd = 1;
				goto again;
			}
			
			if(s_p.perform_op()){
				level = max(level, 2);
				changd =1;
				goto again;
			}
			
			if(c_l.perform_op()){
				level = max(level, 3);
				changd=1;
				goto again;
			}
			
			if(n_p.perform_op()){
				level = max(level, 4);
				changd=1;
				goto again;
			}
			
			break;
	}
	if(!changd)
		level = 5;
	/*while(1)
	{
		char g=getchar();
		if(g!='\n')
			p.display(g-'0');
	}*/
		//s.perform_op();
		//p.display();
	printf("Board Level:%d\n", level);
	return 0;
}