<commit_before># **** [template_spec.cfg]                      ****
# **** Specification file for template          ****
# **** Provides parameter types and defaults    ****
# **** Need to specify only non defaults in     ****
# **** actual configuration                     ****

[General]
    # useful to differentiate results of different runs
    # ! output files are suffixed with _gpot in addition to this
    file_suffix = string(default='')

    dt = float(min=1e-6, default=1e-4)             # simulation time step

    steps = integer(min=1, default=10000)           # number of time steps

    # logging option (log file is neurokernel.log)
    log = option('none', 'file', 'screen', 'both', default='none')

    eye_num = integer(min=1, max=1, default=1)      # number of eyes

[Retina]
    debug = boolean(default=false)             # LPU debugging flag
    
    time_sync = boolean(default=false)         # LPU time synchronization flag

    gexf_file = string(default=retina)

    input_file = string(default=retina_input)

    output_file = string(default=retina_output)

    write_output = boolean(default=true)

    # repetition of inputs in time (input changes every x time steps)
    time_rep = integer(min=1, default=5)
    # repetition of inputs in space (input changes every x pixels)
    space_rep = integer(min=1, default=1)

    # acceptance angle is interommatidial angle times this factor
    acceptance_factor = float(min=0, default=1)

    rings = integer(min=0, default=14)        # number of rings

    micro = integer(min=1, default=30000)     # number of microvilli

    worker_num = integer(min=1, default=1)    # number of worker LPUs

    screentype = option('Cylinder', 'Sphere', default=Sphere)

    # store screen intensity every screen_write_step step                                           
    screen_write_step = integer(min=1, default=10)

    # euler angles that describe rotation of retina,
    # should be 3xretina_num
    # approximations: pi: 3.1415, pi/2: 1.5707
    # for cylinder use (0, -1.5707, 0)
    eulerangles = float_list(min=3, default=list(0, 0, 0))

    radius = float(min=0, default=1.0)         # radius of retina

    # input type
    intype = option('Ball', 'Bar', 'FlickerStep', 'Natural', default='Natural')

    # vision model
    model = string(default='vision_model_template')

    # With read option demo writes input to a file and LPU reads it 
    # from there, while with generate input is generated at every time
    # step when LPU is simulated 
    inputmethod = option('read', 'generate', default='read')

    # method that computes inputs given the receptive fields of neurons
    # applies only to generate input method (see respactive field)
    filtermethod = option('gpu', 'nogpu', default='gpu')

[Lamina]
    debug = boolean(default=false)             # LPU debugging flag

    time_sync = boolean(default=false)         # LPU time synchronization flag

    # number of amacrine cells relative to cartridges
    relative_am = option('equal', 'half', 'custom', default='custom')

    number_am = integer(min=1, default=310)

    gexf_file = string(default=lamina)

    output_file = string(default=lamina_output)

    # vision model
    model = string(default='vision_model_template')

    composition = '''option('Original', 'Pattern', 'Neighbor', One2One', 'Simple',
                         default = 'Original')'''


[Composition]
    [[Pattern]]
        n_pattern_x = int_list(min=6, default=list(1, 1, 0, -1, -1, 0))
        n_pattern_y = int_list(min=6, default=list(0, 1, 1, 0, -1, -1))

        am_pattern_x = int_list(min=1, default=list(0))
        am_pattern_y = int_list(min=1, default=list(0))

    [[Neighbor]]
        # no configuration needed

    [[One2One]]
        # no configuration needed 

    # original implementation
    [[Original]]
        # bound of amacrine distance to connected
        # cartridges, value relative to 1
        b_amacrine = float(min=0, max=1, default=0.1) 

    [[Simple]]
        # no configuration needed

[InputType]
    shape = int_list(min=2, max=2, default=list(128, 128))
    infilename = string(default=image_inputs.h5)
    writefile = boolean(default=false)

    [[Ball]]
        center = option('center', default='center')

        levels = float_list(min=2, max=2, default=list(3e3, 3e5))

        speed = float(min=0, default=1000)

        white_back = boolean(default=false)

    [[Bar]]
        # width in pixels
        bar_width = integer(default=16)

        # direction v vertical, h horizontal
        direction = option('v', 'h', default='v')

        levels = float_list(min=2, max=2, default=list(3e3, 3e5))

        speed = float(min=0, default=1000)

        double = boolean(default=false)

    [[FlickerStep]]
        # The whole screen changes between specified levels,
        # the pattern of levels is repeated

        # frequency of changing intensity levels
        frequency = float(min=0, default=20)

        # intensity levels (can be as many as one wants)
        levels = float_list(min=1, default=list(3e3, 3e5))

    [[Natural]]
        # A video is generated by moving a window within an image.
        # Window is changing direction every few hundred ms
        # or if it reaches the image boundary

        coord_file = string(default=natural_xy.h5)

        image_file = string(default=image1.mat)    # image file

        scale = float(min=0, default=30000)        # image scaling factor

        speed = float(min=0, default=1000)

        seed = integer(min=0, default=0)

        # store coordinate of Natural input
        store_coords = boolean(default=true)

[Screen]
    [[CylinderScreen]]
        # input image is projected from plane to a cylinder
        # using the default map the projected image
        # covers the half part of the cylinder
        # that corresponds to the eye hemisphere
        # every ray that starts from the center of the eye
        # and crosses the cylinder crosses the eye hemisphere too
        # but not the other way around
        # that results in dark spots at certain parts of the eye<commit_msg>updated template_spec<commit_after># **** [template_spec.cfg]                      ****
# **** Specification file for template          ****
# **** Provides parameter types and defaults    ****
# **** Need to specify only non defaults in     ****
# **** actual configuration                     ****

[General]
    # useful to differentiate results of different runs
    # ! output files are suffixed with _gpot in addition to this
    file_suffix = string(default='')

    dt = float(min=1e-6, default=1e-4)             # simulation time step

    steps = integer(min=1, default=10000)           # number of time steps

    # logging option (log file is neurokernel.log)
    log = option('none', 'file', 'screen', 'both', default='none')

    eye_num = integer(min=1, max=1, default=1)      # number of eyes

[Retina]
    debug = boolean(default=false)             # LPU debugging flag
    
    time_sync = boolean(default=false)         # LPU time synchronization flag

    gexf_file = string(default=retina)

    input_file = string(default=retina_input)

    output_file = string(default=retina_output)

    write_output = boolean(default=true)

    # repetition of inputs in time (input changes every x time steps)
    time_rep = integer(min=1, default=5)
    # repetition of inputs in space (input changes every x pixels)
    space_rep = integer(min=1, default=1)

    # acceptance angle is interommatidial angle times this factor
    acceptance_factor = float(min=0, default=1)

    rings = integer(min=0, default=14)        # number of rings

    micro = integer(min=1, default=30000)     # number of microvilli

    worker_num = integer(min=1, default=1)    # number of worker LPUs

    screentype = option('Cylinder', 'Sphere', default=Sphere)

    # store screen intensity every screen_write_step step                                           
    screen_write_step = integer(min=1, default=10)

    # euler angles that describe rotation of retina,
    # should be 3xretina_num
    # approximations: pi: 3.1415, pi/2: 1.5707
    # for cylinder use (0, -1.5707, 0)
    eulerangles = float_list(min=3, default=list(0, 0, 0))

    radius = float(min=0, default=1.0)         # radius of retina

    # input type
    intype = option('Ball', 'Bar', 'FlickerStep', 'Natural', 'Gratings',default='Natural')

    # vision model
    model = string(default='vision_model_template')

    # With read option demo writes input to a file and LPU reads it 
    # from there, while with generate input is generated at every time
    # step when LPU is simulated 
    inputmethod = option('read', 'generate', default='read')

    # method that computes inputs given the receptive fields of neurons
    # applies only to generate input method (see respactive field)
    filtermethod = option('gpu', 'nogpu', default='gpu')

[Lamina]
    debug = boolean(default=false)             # LPU debugging flag

    time_sync = boolean(default=false)         # LPU time synchronization flag

    # number of amacrine cells relative to cartridges
    relative_am = option('equal', 'half', 'custom', default='custom')

    number_am = integer(min=1, default=310)

    gexf_file = string(default=lamina)

    output_file = string(default=lamina_output)

    # vision model
    model = string(default='vision_model_template')

    composition = '''option('Original', 'Pattern', 'Neighbor', One2One', 'Simple',
                         default = 'Original')'''


[Composition]
    [[Pattern]]
        n_pattern_x = int_list(min=6, default=list(1, 1, 0, -1, -1, 0))
        n_pattern_y = int_list(min=6, default=list(0, 1, 1, 0, -1, -1))

        am_pattern_x = int_list(min=1, default=list(0))
        am_pattern_y = int_list(min=1, default=list(0))

    [[Neighbor]]
        # no configuration needed

    [[One2One]]
        # no configuration needed 

    # original implementation
    [[Original]]
        # bound of amacrine distance to connected
        # cartridges, value relative to 1
        b_amacrine = float(min=0, max=1, default=0.1) 

    [[Simple]]
        # no configuration needed

[InputType]
    shape = int_list(min=2, max=2, default=list(128, 128))
    infilename = string(default=image_inputs.h5)
    writefile = boolean(default=false)

    [[Ball]]
        center = option('center', default='center')

        levels = float_list(min=2, max=2, default=list(3e3, 3e5))

        speed = float(min=0, default=1000)

        white_back = boolean(default=false)

    [[Bar]]
        # width in pixels
        bar_width = integer(default=16)

        # direction v vertical, h horizontal
        direction = option('v', 'h', default='v')

        levels = float_list(min=2, max=2, default=list(3e3, 3e5))

        speed = float(min=0, default=1000)

        double = boolean(default=false)

    [[FlickerStep]]
        # The whole screen changes between specified levels,
        # the pattern of levels is repeated

        # frequency of changing intensity levels
        frequency = float(min=0, default=20)

        # intensity levels (can be as many as one wants)
        levels = float_list(min=1, default=list(3e3, 3e5))

    [[Natural]]
        # A video is generated by moving a window within an image.
        # Window is changing direction every few hundred ms
        # or if it reaches the image boundary

        coord_file = string(default=natural_xy.h5)

        image_file = string(default=image1.mat)    # image file

        scale = float(min=0, default=30000)        # image scaling factor

        speed = float(min=0, default=1000)

        seed = integer(min=0, default=0)

        # store coordinate of Natural input
        store_coords = boolean(default=true)

	[[Gratings]]
        x_freq = float(min=0, default=0.02)

        y_freq = float(min=0, default=0)

        x_speed = float(min=0, default=500)

        y_speed = float(min=0, default=0)

        sinusoidal = boolean(default=false)

        levels = float_list(min=2, max=2, default=list(3e1, 3e4))

[Screen]
    [[CylinderScreen]]
        # input image is projected from plane to a cylinder
        # using the default map the projected image
        # covers the half part of the cylinder
        # that corresponds to the eye hemisphere
        # every ray that starts from the center of the eye
        # and crosses the cylinder crosses the eye hemisphere too
        # but not the other way around
        # that results in dark spots at certain parts of the eye
{'fraction_non_alphanumeric': 0.10481563890654799, 'fraction_numerical': 0.02431659249841068, 'mean_word_length': 2.7612074118350267, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2820278', 'n_tokens_mistral': 3893, 'n_tokens_neox': 3561, 'n_words': 1144}