Exemple #1
0
def sample_radius(rounds=1, verbose=0):
    if verbose > 0:
        print 'Initializing SDM'
    sdm.initialize()
    dimension = sdm.get_dimension()
    v = []
    for i in xrange(rounds):
        if verbose > 0:
            print 'Round #%d' % (i + 1)
        addr = Bitstring()

        dist = sdm.distance(addr)

        if verbose > 0:
            print '  Processing results'
        w = [0] * (dimension + 1)
        for d in dist:
            w[d] += 1
        u = [0] * (dimension + 1)
        for d, n in enumerate(w):
            for j in range(d, dimension + 1):
                u[j] += n
        v.append(u)
    sdm.free()
    return v
Exemple #2
0
 def test_initialize_free(self, qty=5):
     m0 = self._memused()
     for i in range(qty):
         sdm.initialize()
         sdm.free()
     m1 = self._memused()
     self.assertTrue(m1 < 40000)
Exemple #3
0
def sample_radius(rounds=1, verbose=0):
    if verbose > 0:
        print 'Initializing SDM'
    sdm.initialize()
    dimension = sdm.get_dimension()
    v = []
    for i in xrange(rounds):
        if verbose > 0:
            print 'Round #%d' % (i+1)
        addr = Bitstring()
        
        dist = sdm.distance(addr)

        if verbose > 0:
            print '  Processing results'
        w = [0]*(dimension+1)
        for d in dist:
            w[d] += 1
        u = [0]*(dimension+1)
        for d, n in enumerate(w):
            for j in range(d, dimension+1):
                u[j] += n
        v.append(u)
    sdm.free()
    return v
Exemple #4
0
 def test_mean_distance(self, qty=10):
     sdm.initialize()
     for i in range(qty):
         a = Bitstring()
         arr = array(sdm.thread_distance(a))
         self.assertTrue(abs(arr.mean() - 500) <= 1.5)
     sdm.free()
Exemple #5
0
 def test_mean_distance(self, qty=10):
     sdm.initialize()
     for i in range(qty):
         a = Bitstring()
         arr = array(sdm.thread_distance(a))
         self.assertTrue(abs(arr.mean()-500) <= 1.5)
     sdm.free()
Exemple #6
0
def sample():
    print 'Initializing SDM'
    sdm.initialize()
    dimension = sdm.get_dimension()
    addr = Bitstring()
    dist = sdm.distance(addr)
    sdm.free()
    return dist
Exemple #7
0
 def test_writeread(self, qty=10):
     sdm.initialize()
     for i in range(qty):
         a = Bitstring()
         sdm.thread_write(a, a)
         b = sdm.thread_read(a)
         self.assertEqual(a.distance_to(b), 0)
     sdm.free()
Exemple #8
0
 def test_radius_count(self, qty=10):
     sdm.initialize()
     for i in range(qty):
         a = Bitstring()
         cnt1 = sdm.radius_count(a)
         cnt2 = sdm.thread_radius_count(a)
         self.assertEqual(cnt1, cnt2)
     sdm.free()
def linhares_fig7_1():
    import sdm
    import sdm_utils
    sdm.initialize()
    a = sdm_utils.table_7_1()
    import pylab
    pylab.plot(a)
    pylab.show()
Exemple #10
0
def sample():
    print 'Initializing SDM'
    sdm.initialize()
    dimension = sdm.get_dimension()
    addr = Bitstring()
    dist = sdm.distance(addr)
    sdm.free()
    return dist
Exemple #11
0
 def test_writeread(self, qty=10):
     sdm.initialize()
     for i in range(qty):
         a = Bitstring()
         sdm.thread_write(a, a)
         b = sdm.thread_read(a)
         self.assertEqual(a.distance_to(b), 0)
     sdm.free()
Exemple #12
0
 def test_distance(self, qty=10):
     sdm.initialize()
     for i in range(qty):
         a = Bitstring()
         d1 = sdm.distance(a)
         d2 = sdm.thread_distance(a)
         self.assertEqual(d1, d2)
     sdm.free()
Exemple #13
0
 def test_radius_count_intersect(self, qty=10):
     sdm.initialize()
     for i in range(qty):
         a = Bitstring()
         b = Bitstring()
         cnt1 = sdm.thread_radius_count_intersect(a, b)
         cnt2 = sdm.thread_radius_count_intersect(a, b)
         self.assertEqual(cnt1, cnt2)
     sdm.free()
Exemple #14
0
 def test_writereadnear(self, distance=50, qty=10):
     sdm.initialize()
     for i in range(qty):
         a = Bitstring()
         sdm.thread_write(a, a)
         b = a.copy()
         b.bitrandomswap(distance)
         c = sdm.thread_read(b)
         self.assertEqual(a.distance_to(c), 0)
     sdm.free()
Exemple #15
0
 def test_writereadnear(self, distance=50, qty=10):
     sdm.initialize()
     for i in range(qty):
         a = Bitstring()
         sdm.thread_write(a, a)
         b = a.copy()
         b.bitrandomswap(distance)
         c = sdm.thread_read(b)
         self.assertEqual(a.distance_to(c), 0)
     sdm.free()
Exemple #16
0
 def test_saveload(self):
     a = Bitstring()
     #sdm.initialize()
     sdm.thread_write(a, a)
     self.assertEqual(a.distance_to(sdm.thread_read(a)), 0)
     self.assertEqual(sdm.save_to_file('_test.sdm'), 0)
     sdm.free()
     sdm.initialize()
     self.assertTrue(a.distance_to(sdm.read(a)) > 0)
     sdm.free()
     self.assertEqual(sdm.initialize_from_file('_test.sdm'), 0)
     self.assertEqual(a.distance_to(sdm.thread_read(a)), 0)
Exemple #17
0
def scan_for_distances():
    import time, cPickle;
    sdm.initialize()
    v = sdm.Bitstring()
    for i in range (0,10,1):	
        sdm.thread_write(v,v)
    import pylab
    for i in range (1000,51000,1000):
        print 'Computing distances for '+str(i)+' items registered'
        #add 1000 itens to memory
        mem_write_x_at_x(1000)
        a = sdm_utils.critical_distance2(0, 1000, 1, v, read=sdm.thread_read_chada)
        #get new distance values in a
        #save a
        cPickle.dump(a, open (str(i)+'10writes_Chada_Read.cPickle', 'wb'))
        print 'saved '+str(i)+'.cPickle'
Exemple #18
0
def scan_for_distances(numwrites=1):
    import time, cPickle;

    #Configure execution
    numwrites_string = '_x_at_x_'+str(numwrites)+'_writes'

    sdm.initialize()
    v = sdm.Bitstring()
    for i in range(numwrites):
        sdm.thread_write(v,v)
    for i in range (1000,2000,1000):
        print 'Registering '+str(i)+' new items in SDM'
        #add 1000 itens to memory
        mem_write_x_at_x(1000)
        print 'Computing the distances to these items'
        a = sdm_utils.critical_distance2(0, sdm.get_dimension(), 1, v, iterated_reading=6, read=sdm.thread_read_cubed,debug=0)
        #save new distance values in a
        picklename = 'N=256_iter_read=2_'+str(i)+'saved items'+numwrites_string+'_DrK_cubed.cPickle'
        cPickle.dump(a, open (picklename, 'wb'))
        print 'saved '+picklename
    sdm.free()
Exemple #19
0
#!/usr/bin/env python

import sdm
import time

print 'Initializing..',
sdm.initialize()
print 'done!'

#print 'Running count..'
#start = time.time()
#for i in range(300):
#    a = sdm.Bitstring()
#    print i, sdm.thread_radius_count(a)
#print 'Time:', time.time()-start

print 'Running write..'
start = time.time()
for i in range(300):
    a = sdm.Bitstring()
    print i, sdm.thread_write(a, a)
print 'Time:', time.time()-start

Exemple #20
0
 def setUp(self):
     sdm.initialize()
Exemple #21
0
 def test_mean_distance(self, qty=10):
     sdm.initialize()
     for i in range(qty):
         a = Bitstring()
Exemple #22
0
#!/usr/bin/env python

import sdm
import time

print 'Initializing..',
sdm.initialize()
print 'done!'

#print 'Running count..'
#start = time.time()
#for i in range(300):
#    a = sdm.Bitstring()
#    print i, sdm.thread_radius_count(a)
#print 'Time:', time.time()-start

print 'Running write..'
start = time.time()
for i in range(300):
    a = sdm.Bitstring()
    print i, sdm.thread_write(a, a)
print 'Time:', time.time() - start