Exemple #1
1
void CNetRadioDlg::OnBnClickedTest()
{
	CString strValue;
	IHTMLDocument2* pDoc = (IHTMLDocument2*)m_Browser.GetHtmlDocument();
	HRESULT hr = S_FALSE;
	IHTMLElementCollection* pAllElem = NULL;
	IHTMLElementCollection* pAllScript = NULL;
	IHTMLElement* pElem = NULL;

	hr = pDoc->get_scripts(&pAllScript);
	if(SUCCEEDED(hr) && pAllScript != NULL)
	{
		IDispatchPtr pElemDisp = NULL;
		_variant_t varID(1);
		_variant_t varIdx(0);
		hr = pAllScript->item(varID, varIdx, &pElemDisp);
		if(SUCCEEDED(hr) && pElemDisp != NULL)
		{
			hr = pElemDisp->QueryInterface(IID_IHTMLElement,(void**)&pElem);
			if(SUCCEEDED(hr) && pElem != NULL)
			{
				BSTR bstrTagName;
				hr = pElem->get_outerHTML(&bstrTagName);
			
				hr = pElem->get_outerHTML(&bstrTagName);
				if(SUCCEEDED(hr))
				{
					CString strTagName(bstrTagName);
					SysFreeString(bstrTagName);
					MessageBox(strTagName);
				}
			}
		}
	}

	hr = pDoc->get_all(&pAllElem);

	if(SUCCEEDED(hr) && pAllElem != NULL)
	{
		IDispatchPtr pElemDisp = NULL;
		_variant_t varID(_T("body"));
		_variant_t varIdx(0);
		hr = pAllElem->item(varID, varIdx, &pElemDisp);
		if(SUCCEEDED(hr) && pElemDisp != NULL)
		{
			MessageBox(_T("OK"));
		}
	}

}
Exemple #2
0
int main(int argc, char * argv[])
{
  int gridSize = 10;
  int matSize = gridSize * gridSize;

  //only works with double
  SparseMatrixd mat(matSize);
  std::vector<double> rhs(matSize,0);
  CmpPairFirst<unsigned int, double> cmp;
  int nbr[STENCIL_SIZE][2] = {{-1,0},{0,-1},{0,1},{1,0}};
  //make a 2d laplace matrix on regular grid
  //row
  for(int ii = 0; ii<gridSize; ii++){
    //col 
    for(int jj = 0; jj<gridSize; jj++){
      int centerIdx = varIdx(ii, jj, gridSize);
      double centerVal = 0;
      std::vector<ColVal> pairs;
      int nbrCnt = 0;
      for(int nn = 0; nn<STENCIL_SIZE; nn++){
        int ni = ii + nbr[nn][0];
        int nj = jj + nbr[nn][1];
        if(inBound(ni, nj, gridSize)){
          int nbrIdx = varIdx( ni, nj, gridSize);
          nbrCnt++;
          pairs.push_back(ColVal(nbrIdx, -1));
        }
      }
      centerVal = nbrCnt;
      pairs.push_back(ColVal(centerIdx, centerVal));
      std::sort(pairs.begin(), pairs.end(), cmp);
      std::vector<unsigned int> indices(pairs.size());
      std::vector<double> values (pairs.size());
      for(unsigned int nn = 0; nn<pairs.size(); nn++){
        indices[nn] = pairs[nn].first;
        values[nn] = pairs[nn].second;
      }
      mat.add_sparse_row(centerIdx, indices, values);
      float dx = 1.0/gridSize;
      rhs[centerIdx] = dx*ii*dx*ii + dx*jj;
    }
  }
  unsigned int lastIdx = varIdx(gridSize-1, gridSize-1, gridSize);
  mat.symmetric_remove_row_and_column(lastIdx);
  mat.set_element(lastIdx, lastIdx, 1);
  rhs[lastIdx] = 0;
  mat.write_matlab(std::cout, "K");
  
  PCGSolver <double> solver;
  solver.set_solver_parameters(1e-12, 1000);
  double residual;
  int iters;
  std::vector<double> result(matSize,0);
  
  solver.solve(mat, rhs, result, residual, iters);
  
  for(unsigned int ii =0 ; ii<rhs.size(); ii++){
    std::cout<<rhs[ii]<<"\n";
  }
  for(unsigned int ii =0 ; ii<result.size(); ii++){
    std::cout<<result[ii]<<"\n";
  }
  std::cout<<"Residual: "<<residual<<"\n";
  std::cout<<"Iterations: "<<iters<<"\n";
  return 0;
}
Exemple #3
0
void assembleTo(FILE *fOut, FILE *fIn) {
    char cmd[lineLim+1], arg[argLim+1];
    int argI;

    while( getCmd(cmd,arg, fIn) && *cmd ) {
        if( *cmd == '$' ) regVar(cmd+1, arg);
        if( strchr(";:.$", *cmd) ) continue;

#define case_cmd(nam) !strcmp(cmd, #nam)? cmd_##nam
        fputc(
            case_cmd(jmp): case_cmd(jmpImm): case_cmd(jfImm):
            case_cmd(call): case_cmd(callImm): case_cmd(ret):

            case_cmd(putchar): case_cmd(getchar):
            case_cmd(write): case_cmd(readln):
            case_cmd(putStack): case_cmd(atEof):

            case_cmd(argc): case_cmd(argv):

            case_cmd(pushInt): case_cmd(pushChr): case_cmd(pushStr):
            case_cmd(pushVarInt): case_cmd(pushVarChr): case_cmd(pushVarStr):
            case_cmd(popInt): case_cmd(popChr): case_cmd(popStr):

            case_cmd(intToChr): case_cmd(intToStr):
            case_cmd(strToInt): case_cmd(strToChr):
            case_cmd(chrToInt): case_cmd(chrToStr):

            case_cmd(add): case_cmd(sub):
            case_cmd(mul): case_cmd(div): case_cmd(mod):
            case_cmd(eq): case_cmd(gt): case_cmd(lt):

            case_cmd(strcatChr): case_cmd(strcat):
            case_cmd(strlen):
            case_cmd(streq): case_cmd(strcmp):
            case_cmd(strmask):
            case_cmd(indexOf):
            case_cmd(replaceChr): case_cmd(setChr):
            case_cmd(chrAt):
            case_cmd(strdivInt): case_cmd(strdivChr):

            case_cmd(dupInt): case_cmd(swapInt): case_cmd(rotInt):
            case_cmd(dupChr): case_cmd(swapChr): case_cmd(rotChr):
            case_cmd(dupStr): case_cmd(swapStr): case_cmd(rotStr):
            cmd_stop
            ,
            fOut
        );
#undef case_cmd

        argI =
            *arg=='\''? arg[1]:
            *arg=='+'? idx+atoi(arg+1):
            *arg=='-'? idx-atoi(arg+1):
            *arg==':' || *arg=='.'? getLabel(fIn, arg):
            isdigit(*arg)? atoi(arg):
            isVar(arg)? varIdx(arg)+1:
            0;

        fputc(argI & 0xFF, fOut);
        fputc((argI >> 8) & 0xFF, fOut);
        ++idx;
    }
}