/** * Makes index lower. * * @param index index * @return lowered index */ public static int lower(int index) { return setRawState(0, index); }
/** * Changes index state to specified state (true - upper, false - lower). * * @param state index state: true - upper, false - lower) * @param index index to change state in * @return index with new state */ public static int setState(boolean state, int index) { return setRawState(state ? 0x80000000 : 0, index); }
/** * Makes index upper. * * @param index index * @return raised index */ public static int raise(int index) { return setRawState(0x80000000, index); }
/** * String representation in specified output format. * * @param format output format * @return string representation in specified output format */ public String toString(OutputFormat format) { StringBuilder sb = new StringBuilder(); sb.append(sign ? '-' : '+').append('{'); if (map.isEmpty()) return sb.append('}').toString(); String from, to; TIntObjectIterator<IndexMappingBufferRecord> iterator = map.iterator(); while (iterator.hasNext()) { iterator.advance(); if (iterator.value().isContracted()) { from = toStringIndex(iterator.key(), format).substring(1); to = toStringIndex(iterator.value().getIndexName(), format).substring(1); sb.append(','); } else { from = toStringIndex(setRawState(iterator.value().getFromRawState(), iterator.key()), format); to = toStringIndex(setRawState(iterator.value().getToRawState(), iterator.value().getIndexName()), format); } sb.append(from).append(" -> ").append(to).append(", "); } sb.deleteCharAt(sb.length() - 1).deleteCharAt(sb.length() - 1).append('}'); return sb.toString(); } // public String toStringWithStates() {
index = currentFactorIndices.get(j); if (freeIndices.contains(getNameWithType(index))) { newIndex = setRawState(getRawStateInt(index), generator.generate(getType(index))); from.add(index); to.add(newIndex); kroneckers.add(Tensors.createKronecker(index, inverseIndexState(newIndex))); } else if (IndicesUtils.getState(index) && dummies.contains(getNameWithType(index))) { newIndex = setRawState(getRawStateInt(index), generator.generate(getType(index))); from.add(index); to.add(newIndex);
type = getType(varIndices.get(i)); state = getRawStateInt(varIndices.get(i)); allFreeVarIndices[i] = setRawState(indexGenerator.generate(type), inverseIndexState(state)); allFreeArgIndices[i] = setRawState(indexGenerator.generate(type), state);
indices[j] = setRawState(getRawStateInt(var.getIndices().get(j)), ig.generate(getType(var.getIndices().get(j)))); varIndices = UnsafeIndicesFactory.createIsolatedUnsafeWithoutSort(null, indices);
return currentBuffer = null; int toIndex = inverseIndexState(setRawState(bRec.getToRawState(), bRec.getIndexName())); for (int mapTo = 0; mapTo < size; ++mapTo) { if (toIndices.get(mapTo) == toIndex) {