def features_dense_modular (A=matrixA,B=matrixB,C=matrixC):

    a=RealFeatures(A)
    b=LongIntFeatures(B)
    c=ByteFeatures(C)

# or 16bit wide ...
#feat1 = f.ShortFeatures(N.zeros((10,5),N.short))
#feat2 = f.WordFeatures(N.zeros((10,5),N.uint16))


# print(some statistics about a)

# get first feature vector and set it

    a.set_feature_vector(array([1,4,0,0,0,9], dtype=float64), 0)

# get matrices
    a_out = a.get_feature_matrix()
    b_out = b.get_feature_matrix()
    c_out = c.get_feature_matrix()

    assert(all(a_out==A))

    assert(all(b_out==B))

    assert(all(c_out==C))
    return a_out,b_out,c_out,a,b,c
def features_dense_longint_modular (A=matrix):
	a=LongIntFeatures(A)
	# get first feature vector and set it

	a.set_feature_vector(array([1,4,0,0,0,9], dtype=int64), 0)

	# get matrix
	a_out = a.get_feature_matrix()

	assert(all(a_out==A))
	return a_out
def features_string_hashed_wd_modular(A=matrix,
                                      order=3,
                                      start_order=1,
                                      hash_bits=2):
    a = LongIntFeatures(A)

    from numpy import array, uint8
    from modshogun import HashedWDFeatures, StringByteFeatures, RAWDNA
    from modshogun import MSG_DEBUG

    x = [array([0, 1, 2, 3, 0, 1, 2, 3, 3, 2, 2, 1, 1], dtype=uint8)]
    from_order = order
    f = StringByteFeatures(RAWDNA)
    #f.io.set_loglevel(MSG_DEBUG)
    f.set_features(x)

    y = HashedWDFeatures(f, start_order, order, from_order, hash_bits)
    fm = y.get_computed_dot_feature_matrix()

    return fm