void CoderRZ::setupCoding() { sBinOne = ""; sBinOne += getPositive(); sBinOne += getZero(); sBinZero += ""; sBinZero += getZero(); sBinZero += getZero(); }
void HqlCppCaseInfo::buildChop3Map(BuildCtx & ctx, const CHqlBoundTarget & target, CHqlBoundExpr & test, IHqlExpression * temp, unsigned start, unsigned end) { if ((end - start) <= 2) buildChop2Map(ctx, target, test, start, end); else { unsigned mid = start + (end - start) / 2; generateCompareVar(ctx, temp, test, queryCompare(mid)); OwnedHqlExpr test1 = createValue(no_eq, LINK(temp), getZero()); OwnedHqlExpr test2 = createValue(no_lt, LINK(temp), getZero()); BuildCtx subctx(ctx); IHqlStmt * if1 = subctx.addFilter(test1); // if (test == 0) translator.buildExprAssign(subctx, target, queryReturn(mid)); // target = value(n) subctx.selectElse(if1); // else IHqlStmt * if2 = subctx.addFilter(test2); // if (test < 0) buildChop3Map(subctx, target, test, temp, start, mid); // repeat for start..mid subctx.selectElse(if2); // else buildChop3Map(subctx, target, test, temp, mid+1, end); // repeat for min..end } }
int SCTE65_TableHeader::dump(DumpContext& dc) { // throws IOException dc.indent(); dc.getPs().print("SCTE65_TableHeader\n"); dc.increaseIndent(); int retVal= 0; // write messageType dc.indent(); dc.getPs().print("messageType="); dc.getPs().println((long)messageType); // write bf1 { dc.indent(); dc.getPs().print("zero: "); dc.getPs().printlnBin(getZero(),2); dc.indent(); dc.getPs().print("reserved: "); dc.getPs().printlnBin(getReserved(),2); dc.indent(); dc.getPs().print("section_length: "); dc.getPs().printlnBin(getSection_length(),12); } dc.decreaseIndent(); return retVal; }
TEST(BasicMPI, FailExceptOnRankZero) { MPI_Comm comm = MPI_COMM_WORLD; int rank; MPI_Comm_rank(comm, &rank); EXPECT_EQ(rank, getZero(comm)); }
IHqlExpression * HqlCppCaseInfo::buildIndexedMap(BuildCtx & ctx, const CHqlBoundExpr & test) { ITypeInfo * compareType = test.queryType()->queryPromotedType(); type_t compareTypeCode = compareType->getTypeCode(); HqlExprArray values; IHqlExpression * dft = queryActiveTableSelector(); // value doesn't matter as long as it will not occur __int64 lower = getIntValue(lowerTableBound, 0); unsigned num = (getIntValue(upperTableBound, 0)-lower)+1; CHqlBoundExpr indexExpr; switch (compareTypeCode) { case type_int: indexExpr.set(test); break; case type_string: indexExpr.expr.setown(createValue(no_index, makeCharType(), LINK(test.expr), getZero())); indexExpr.expr.setown(createValue(no_cast, makeIntType(1, false), LINK(indexExpr.expr))); break; default: throwUnexpectedType(compareType); } if (useRangeIndex && (num != 1)) translator.ensureSimpleExpr(ctx, indexExpr); OwnedHqlExpr mapped; ITypeInfo * retType = resultType; //if num == pairs.ordinality() and all results are identical, avoid the table lookup. if (allResultsMatch && (num == pairs.ordinality())) { mapped.set(pairs.item(0).queryChild(1)); } else { values.ensure(num); unsigned idx; for (idx = 0; idx < num; idx++) values.append(*LINK(dft)); ForEachItemIn(idx2, pairs) { IHqlExpression & cur = pairs.item(idx2); IValue * value = cur.queryChild(0)->queryValue(); unsigned replaceIndex; switch (compareTypeCode) { case type_int: replaceIndex = (unsigned)(value->getIntValue()-lower); break; case type_string: { StringBuffer temp; value->getStringValue(temp); replaceIndex = (unsigned)((unsigned char)temp.charAt(0)-lower); break; } default: throwUnexpectedType(compareType); } IHqlExpression * mapTo = cur.queryChild(1); if (mapTo->getOperator() != no_constant) throwUnexpected(); if (replaceIndex >= num) translator.reportWarning(CategoryIgnored, HQLWRN_CaseCanNeverMatch, "CASE entry %d can never match the test condition", replaceIndex); else values.replace(*LINK(mapTo),replaceIndex); } //Now replace the placeholders with the default values. for (idx = 0; idx < num; idx++) { if (&values.item(idx) == dft) values.replace(*defaultValue.getLink(),idx); } // use a var string type to get better C++ generated... ITypeInfo * storeType = getArrayElementType(resultType); ITypeInfo * listType = makeArrayType(storeType, values.ordinality()); OwnedHqlExpr lvalues = createValue(no_list, listType, values); CHqlBoundExpr boundTable; translator.buildExpr(ctx, lvalues, boundTable); LinkedHqlExpr tableIndex = indexExpr.expr; if (getIntValue(lowerTableBound, 0)) tableIndex.setown(createValue(no_sub, tableIndex->getType(), LINK(tableIndex), LINK(lowerTableBound))); IHqlExpression * ret = createValue(no_index, LINK(retType), LINK(boundTable.expr), LINK(tableIndex)); mapped.setown(createTranslatedOwned(ret)); }