void MagnetostaticCuda::encode(buffer* b)
{
	LongRangeCuda::encode(b);

	for(int i=0; i<3; i++)
		encodeDouble(volumeDimensions[i], b);
	
	for(int i=0; i<9; i++)
		encodeDouble(ABC[i], b);
	
	encodeDouble(crossover_tolerance, b);	
}
void Thermal::encode(buffer* b)
{
	ENCODE_PREAMBLE
	SpinOperation::encode(b);
	char version = 0;
	encodeChar(version, b);
	
	encodeDouble(temperature, b);
	
	scale->encode(b);
}
Example #3
0
void encodeIDBKey(const IDBKey& key, Vector<char>& into)
{
    size_t previousSize = into.size();
    ASSERT(key.isValid());
    switch (key.type()) {
    case IDBKey::InvalidType:
    case IDBKey::MinType:
        ASSERT_NOT_REACHED();
        into.append(encodeByte(IDBKeyNullTypeByte));
        return;
    case IDBKey::ArrayType: {
        into.append(encodeByte(IDBKeyArrayTypeByte));
        size_t length = key.array().size();
        into.append(encodeVarInt(length));
        for (size_t i = 0; i < length; ++i)
            encodeIDBKey(*key.array()[i], into);
        ASSERT_UNUSED(previousSize, into.size() > previousSize);
        return;
    }
    case IDBKey::StringType:
        into.append(encodeByte(IDBKeyStringTypeByte));
        into.append(encodeStringWithLength(key.string()));
        ASSERT_UNUSED(previousSize, into.size() > previousSize);
        return;
    case IDBKey::DateType:
        into.append(encodeByte(IDBKeyDateTypeByte));
        into.append(encodeDouble(key.date()));
        ASSERT_UNUSED(previousSize, into.size() - previousSize == 9);
        return;
    case IDBKey::NumberType:
        into.append(encodeByte(IDBKeyNumberTypeByte));
        into.append(encodeDouble(key.number()));
        ASSERT_UNUSED(previousSize, into.size() - previousSize == 9);
        return;
    }

    ASSERT_NOT_REACHED();
}
void ShortRange::encode(buffer* b)
{
    ENCODE_PREAMBLE
	SpinOperation::encode(b);
    char version = 0;
    encodeChar(version, b);
	
    encodeInteger(pbc[0], b);
    encodeInteger(pbc[1], b);
    encodeInteger(pbc[2], b);
	
    encodeInteger(num, b);
	
    for(int i=0; i<num; i++)
    {
	encodeInteger(pathways[i].fromsite, b);
	encodeInteger(pathways[i].tosite, b);
	encodeDouble(pathways[i].strength, b);
	for(int j=0; j<9; j++)
	    encodeDouble(pathways[i].matrix[j], b);
	encodeDouble(pathways[i].sig_dot_sig_pow, b);
		    
    }
}
Example #5
0
    static uint32_t writeDate(std::vector<uint8_t>& buffer, const Date& value)
    {
        uint32_t size = 0;

        uint32_t ret = encodeDouble(buffer, value.ms);

        if (ret == 0) // date in milliseconds from 01/01/1970
        {
            return 0;
        }

        size += ret;

        ret = encodeInt(buffer, 4, value.timezone);

        if (ret == 0) // unsupported timezone
        {
            return 0;
        }

        size += ret;

        return size;
    }
Example #6
0
    // writing
    static uint32_t writeNumber(std::vector<uint8_t>& buffer, double value)
    {
        uint32_t ret = encodeDouble(buffer, value);

        return ret;
    }