Un Clúster con SLURM, uso y configuración
View more presentations from miguelolivan
Como su propio nombre indica, aún otro weblog de programación más
Of course it is physically possible to pick up a basketball and run with it. It is also possible you will get away with it during a game. However, it is against the rules; good players won’t do it and bad players won’t get away with it for long.Como se puede leer es uno de esos temas que conviene saber (y muy bien) si se pretende hacer código portable. Así que, para leer con detenimiento.
If there are fewer initializers than there are array elements, each element not explicitly initialized shall be
zero-initialized
If there are fewer initializers in the list than there are members in the aggregate, then each member not explicitly initialized shall be default-initialized (8.5)
[Example:
struct S { int a; char* b; int c; };
S ss = { 1, "asdf" };
initializes ss.a with 1, ss.b with "asdf", and ss.c with the value of an expression of the form
int(), that is, 0. ]
If there are fewer initializer-clauses in the list than there are members in the aggregate, then each member
not explicitly initialized shall be initialized from an empty initializer list (8.5.4)
RooRealVar a("a","a",3.);
RooRealVar b("b","b",7.);
RooFormulaVar plus(“aplusb”,”a+b”,RooArgSet(a,b));
//10
cout << plus.getVal() << endl;
TClonesArray tca("RooRealVar",2)
RooRealVar *var1 = new (tca[1]) RooRealVar("var1","var2",0);
RooRealVar *var2 = new (tca[0]) RooRealVar("var2","var2",0);
RooFormulaVar opor("var1orvar2","var1&var2",RooArgSet(tca));
var1->setVal(2.);
var2->setVal(7.);
//2
cout << opor.getVal() << endl;
var1->setVal(5.);
var2->setVal(1.);
//1
cout << opor.getVal() << endl;
var1->setVal(8.);
var2->setVal(1.);
//0
cout << opor.getVal() << endl;
TClonesArray tca("RooRealVar",2)
RooRealVar *var1 = new (tca[1]) RooRealVar("var1","var2",0);
RooRealVar *var2 = new (tca[0]) RooRealVar("var2","var2",0);
RooFormulaVar cond("var1littvar2big","var1<1 || var2>10",RooArgSet(tca));
var1->setVal(0.);
var2->setVal(17.);
//true
cout << cond.getVal() << endl;
var1->setVal(3.);
var2->setVal(11.);
//true
cout << cond.getVal() << endl;
var1->setVal(8.);
var2->setVal(1.);
//false
cout << cond.getVal() << endl;
RooRealVar a("a","a",3.);
RooRealVar b("b","b",7.);
RooFormulaVar plus(“aplusb”,”a+b”,RooArgSet(a,b));
//10
cout << plus.getVal() << endl;
TClonesArray tca("RooRealVar",2)
RooRealVar *var1 = new (tca[1]) RooRealVar("var1","var2",0);
RooRealVar *var2 = new (tca[0]) RooRealVar("var2","var2",0);
RooFormulaVar opor("var1orvar2","var1&var2",RooArgSet(tca));
var1->setVal(2.);
var2->setVal(7.);
//2
cout << opor.getVal() << endl;
var1->setVal(5.);
var2->setVal(1.);
//1
cout << opor.getVal() << endl;
var1->setVal(8.);
var2->setVal(1.);
//0
cout << opor.getVal() << endl;
TClonesArray tca("RooRealVar",2)
RooRealVar *var1 = new (tca[1]) RooRealVar("var1","var2",0);
RooRealVar *var2 = new (tca[0]) RooRealVar("var2","var2",0);
RooFormulaVar cond("var1littvar2big","var1<1 || var2>10",RooArgSet(tca));
var1->setVal(0.);
var2->setVal(17.);
//true
cout << cond.getVal() << endl;
var1->setVal(3.);
var2->setVal(11.);
//true
cout << cond.getVal() << endl;
var1->setVal(8.);
var2->setVal(1.);
//false
cout << cond.getVal() << endl;
¡Clang ha completado su primera autocompilación! Hemos compilado toda la LLVM y el propio Clang con Clang, unas 550k líneas de código en C++. Los binarios resultantes han pasado todos los test de regresión y el Clang resultante puede además generar toda la LLVM y Clang de nuevo. Este tercer Clang resultó plenamente funcional completando así el bootstraping .Más comentarios en OSNews y reddit. En noticias relacionadas, el sistema de plugins de GCC va dando sus frutos y la fundación Mozilla ha desarrollado Dehydra y Treehydra, unos plugins para hacer análisis estático de código C++.
Muy interesante todo el texto original, incluidas las elipsis ;) anque bastante específicas del caso DNS. Lo que no me ha quedado claro es la razón de no usar LZ77, si fue un caso de Síndrome NIH, de hackerismo o tenía algo que ver con las patentes sobre estos tipos de compresión que llevaban haciéndose desde 1984 como la del LZ78. Pero vamos como regla general parece mucho mejor usar un algoritmo conocido que inventar uno nuevo, a no ser que trabajes en eso, en innovar...
Un problema con la compresión DNS es la cantidad de código necesario para analizarla. Localizar de modo fiable los nombres lleva un trabajo que habría sido evitable para una caché DNS. La compresión LZ77 habría sido mucho más fácil de implementar.
Otro problema con la compresión DNS es la cantidad de código necesario para generarlo correctamente. [...]
Otro problema con la compresión DNS es que no es particularmente efectiva. LZ77 habría funcionado mejor en esos tipos de datos y funcionaría mejor con los tipos de registros que se popularizarían en el futuro [...](Y aquí habla de incompatibilidades de algunas versiones de BIND con el RFC)