Example #1
0
File: hdm.py Project: celesmec/eps
def pb_t1a1(m=6, t_order_max=20, isDouble=False, isPrint=True):
    """
	"""
    from pyranha.math import cos, sin, degree, ldegree, t_degree, t_ldegree, t_order, t_lorder, truncate_degree
    PATH_CHN = PREFIX + 'HDM/CHN1/H1/'
    PATH_EQN = PREFIX + 'HDM/EQN1/H1/'
    (c, one, max_m, type2, pt2,
     epst2) = (0.5, 1., m, 'd', pd, epsd) if isDouble else (F(1, 2), 1, F(m),
                                                            't', pt, epst)
    for i in range(len(pq_list)):
        if pq_list[i][0] != 'L':
            for file1 in os.listdir(PATH_CHN + qp_list[i]):
                diff1 = epst(0)
                lf(diff1, PATH_CHN + qp_list[i] + '/' + file1,
                   df.boost_portable, cf.bzip2)
                diff1 = truncate_degree(diff1, F(m), pq_list[8:])
                new_diff1 = epst2(0)
                for item1 in diff1.list:
                    if t_order(item1[1]) <= t_order_max:
                        new_diff1 += one * (item1[0] * item1[1])
                if isPrint:
                    print file1[:-16] + ':', sum([
                        len(item.list) for item in
                        [jtem[0].list[0][0] for jtem in new_diff1.list]
                    ]), len(new_diff1.list)
                for file2 in os.listdir(PATH_EQN + pq_list[i]):
                    start = time.time()
                    diff2 = epst(0)
                    lf(diff2, PATH_EQN + pq_list[i] + '/' + file2,
                       df.boost_portable, cf.bzip2)
                    diff2 = one * diff2
                    if isPrint:
                        print file2[:-16] + ':', sum([
                            len(item.list) for item in
                            [jtem[0].list[0][0] for jtem in diff2.list]
                        ]), len(diff2.list)
                    pt2.set_auto_truncate_degree(max_m, pq_list[8:])
                    result = c * new_diff1 * diff2 if (
                        pq_list[i][0] in 'qyv') else -c * new_diff1 * diff2
                    pt2.unset_auto_truncate_degree()
                    if isPrint:
                        print 'result:', sum([
                            len(item.list) for item in
                            [jtem[0].list[0][0] for jtem in result.list]
                        ]), len(result.list)
                    if result != epst2(0):
                        PATH_SAVE = PREFIX + 'HDM/PHI2/T1A1_TOR' + str(
                            t_order_max).rjust(
                                2, '0'
                            ) + '/' + pq_list[i] + '_' + qp_list[i] + '/'
                        if not os.path.exists(PATH_SAVE):
                            os.makedirs(PATH_SAVE)
                        sf(
                            result.trim(),
                            PATH_SAVE + '/p2' + '_' + file1[3:5] + '_' +
                            file2[3:5] + '.eps' + type2 + '.boostp.bz2',
                            df.boost_portable, cf.bzip2)
                    print 'bracket:', pq_list[i] + '_' + qp_list[
                        i], file1[:-16], file2[:-16], str(
                            '%.1f' % (time.time() - start)).rjust(4, ' '), 's'
Example #2
0
File: hdm.py Project: celesmec/eps
def eqn_s(max_deg, order=2, num_item=1, t_order_max=15, prefix=''):
    """
	"""
    from pyranha.math import partial, truncate_degree
    if order == 1:
        index = ''
    if order > 1:
        pbrackets = ['t1h1'] if order == 2 else [
            't1h2', 't2h1_h2', 't2h1_t1a1', 't2h1_t1h1', 't1t1h1', 't1t1a1'
        ]
        if num_item == 1: index = '_' + str(order)
        if num_item > 1:
            index = '_' + pbrackets[num_item -
                                    2] + '_tor' + str(t_order_max).rjust(
                                        2, '0')
    PATH = PREFIX + 'HDM/SUMS/HAM/HAM' + str(order) + prefix + '/'
    for file2 in os.listdir(PATH):
        if index in file2 and file2[0] == 'h':
            series = epst(0)
            lf(series, PATH + file2, df.boost_portable, cf.bzip2)
            for i in range(8, len(pq_list)):
                motion = -partial(series, pq_list[i]) if (
                    pq_list[i][0] in 'qyv') else partial(series, pq_list[i])
                if max_deg > 0:
                    motion = truncate_degree(motion, max_deg, pq_list[8:])
                PATH_SAVE = PREFIX + 'HDM/SUMS/EQN/EQN' + str(
                    order) + prefix + '/'
                sf(
                    motion.trim(), PATH_SAVE + 'e' + file2[1:-16] + '_' +
                    qp_list[i] + '.epst.boostp.bz2', df.boost_portable,
                    cf.bzip2)
Example #3
0
File: hdm.py Project: celesmec/eps3
def chn_s(max_deg,
          order=1,
          num_item=1,
          t_order_max=15,
          prefix='',
          save_bracket=True,
          isDouble=False):
    """
	The summation of terms of the change-functions.
	"""
    from pyranha.math import truncate_degree
    if order == 1:
        PATH, index = PREFIX + 'HDM/CHN1/H1' + prefix + '/', ''
    if order > 1:
        pbrackets = ['T1H1', 'T1A1'] if order == 2 else [
            'T1H2', 'T1A2', 'T2H1_H2', 'T2H1_T1A1', 'T2H1_T1H1', 'T2A1_H2',
            'T2A1_T1A1', 'T2A1_T1H1', 'T1T1H1', 'T1T1A1'
        ]
        if num_item == 1:
            PATH, index = PREFIX + 'HDM/CHN' + str(order) + '/H' + str(
                order) + '/', '_' + str(order)
        if num_item > 1:
            PATH = PREFIX + 'HDM/CHN' + str(order) + '/' + pbrackets[
                num_item - 2] + '_TOR' + str(t_order_max).rjust(2, '0') + '/'
            index = '_' + pbrackets[num_item - 2].lower() + '_tor' + str(
                t_order_max).rjust(2, '0')
    (type2, epst2) = ('d', epsd) if isDouble else ('t', epst)
    PATH_SAVE = PREFIX + 'SUM/CHN/CHN' + str(order) + prefix + '/'
    if not os.path.exists(PATH_SAVE): os.makedirs(PATH_SAVE)
    print PATH[len(PREFIX):], '->', PATH_SAVE[len(PREFIX):]
    for i in range(len(pq_list)):
        list_dirs = os.listdir(PATH + qp_list[i] +
                               '/') if num_item != 1 else ['']
        series = epst2(0)
        for subdir in list_dirs:
            series_temp = epst2(0)
            for file2 in os.listdir(PATH + qp_list[i] + '/' + subdir + '/'):
                temp = epst2(0)
                lf(temp, PATH + qp_list[i] + '/' + subdir + '/' + file2,
                   df.boost_portable, cf.bzip2)
                if max_deg > 0:
                    temp = truncate_degree(temp, max_deg, pq_list[8:])
                if save_bracket: series_temp += temp
                else: series += temp
                print '>', file2[:-16]
            if save_bracket:
                sf(
                    series_temp.trim(),
                    PATH_SAVE + 'c' + str(order) + index + '_(' + subdir +
                    ')_' + qp_list[i] + '.eps' + type2 + '.boostp.bz2',
                    df.boost_portable, cf.bzip2)
        if not save_bracket:
            sf(
                series.trim(), PATH_SAVE + 'c' + str(order) + index + '_' +
                qp_list[i] + '.eps' + type2 + '.boostp.bz2', df.boost_portable,
                cf.bzip2)
Example #4
0
File: hdm.py Project: celesmec/eps3
def ham_s(max_deg,
          order=2,
          num_item=1,
          out_post='',
          out_save='',
          bracket='',
          save_bracket=True):
    """
	"""
    from pyranha.math import truncate_degree
    out_post = out_post if out_post == '' else '_' + out_post
    out_save = out_save if out_save == '' else '_' + out_save
    if order in range(1, 4) and num_item == 1:
        PATH = PREFIX + 'HDM/HAM' + str(order) + '/H' + str(
            order) + out_post + '/'
        index = '' if order == 1 else '_' + str(order)
    if order > 1 and num_item > 1:
        if order == 2: pbrackets = ['T1H1']
        if order == 3:
            pbrackets = [
                'T1H2', 'T2H1_H2', 'T2H1_T1A1', 'T2H1_T1H1', 'T1T1H1', 'T1T1A1'
            ]
        PATH = PREFIX + 'HDM/HAM' + str(order) + '/' + pbrackets[
            num_item - 2] + out_post + '/'
        index = '_' + pbrackets[num_item - 2].lower() + out_post.lower()
    PATH_SAVE = PREFIX + 'SUM/HAM/HAM' + str(order) + out_save + '/'
    if not os.path.exists(PATH_SAVE): os.makedirs(PATH_SAVE)
    print PATH[len(PREFIX):], '->', PATH_SAVE[len(PREFIX):]
    list_dirs = os.listdir(PATH) if num_item != 1 else ['']
    series = epst(0)
    for subdir in list_dirs:
        if (bracket == '') or (bracket == subdir):
            series_temp = epst(0)
            for file2 in os.listdir(PATH + subdir + '/'):
                temp = epst(0)
                lf(temp, PATH + subdir + '/' + file2, df.boost_portable,
                   cf.bzip2)
                if max_deg > 0:
                    temp = truncate_degree(temp, max_deg, pq_list[8:])
                if bracket == '':
                    if save_bracket: series_temp += temp
                    else: series += temp
                if bracket == subdir:
                    series_temp += temp
                print '>', file2[:-16]
            if (save_bracket) or (bracket != ''):
                sf(
                    series_temp.trim(), PATH_SAVE + 'h' + str(order) + index +
                    '_(' + subdir + ').epst.boostp.bz2', df.boost_portable,
                    cf.bzip2)
    if (not save_bracket) and (bracket == ''):
        sf(series.trim(),
           PATH_SAVE + 'h' + str(order) + index + '.epst.boostp.bz2',
           df.boost_portable, cf.bzip2)
Example #5
0
File: hdm.py Project: celesmec/eps3
def eqn_s(max_deg, order=2, out_save=''):
    """
	"""
    from pyranha.math import partial, truncate_degree
    out_save = out_save if out_save == '' else '_' + out_save
    PATH = PREFIX + 'SUM/HAM/HAM' + str(order) + out_save + '/'
    for file2 in os.listdir(PATH):
        if index in file2 and file2[0] == 'h':
            series = epst(0)
            lf(series, PATH + file2, df.boost_portable, cf.bzip2)
            for i in range(8, len(pq_list)):
                motion = -partial(series, pq_list[i]) if (
                    pq_list[i][0] in 'qyv') else partial(series, pq_list[i])
                if max_deg > 0:
                    motion = truncate_degree(motion, max_deg, pq_list[8:])
                PATH_SAVE = PREFIX + 'SUM/EQN/EQN' + str(
                    order) + out_save + '/'
                if not os.path.exists(PATH_SAVE): os.makedirs(PATH_SAVE)
                sf(
                    motion.trim(), PATH_SAVE + 'e' + file2[1:-16] + '_' +
                    qp_list[i] + '.epst.boostp.bz2', df.boost_portable,
                    cf.bzip2)
Example #6
0
File: hdm.py Project: celesmec/eps3
def pb_t1t1f1(f=0,
              m=4,
              num_br=0,
              num_subr=0,
              t_order_max=20,
              in1_post='',
              in2_post='',
              out_post='',
              isAver=True,
              isDouble=False,
              isPrint=True):
    """
	Poisson brackets {T_1, {T_1, H_1}} and {T_1, {T_1, A_1}}.
	"""
    from pyranha.math import cos, sin, degree, ldegree, t_degree, t_ldegree, t_order, t_lorder, partial, truncate_degree
    in1_post = in1_post if in1_post == '' else '_' + in1_post
    in2_post = in2_post if in2_post == '' else '_' + in2_post
    out_post = out_post if out_post == '' else '_' + out_post
    if f == 0: c = -1. / 6. if isDouble else F(-1, 6)
    if f == 1: c = 1. / 6. if isDouble else F(1, 6)
    TYPE2 = 'A' if f == 0 else 'H'
    PATH_CHN = PREFIX + 'HDM/CHN1/H1' + in1_post + '/'
    PATH_BRA = PREFIX + 'HDM/PHI2/T1' + TYPE2 + '1' + in2_post + '_TOR' + str(
        t_order_max).rjust(2, '0') + '/'
    (one, max_m, type2, pt2,
     epst2) = (1., m, 'd', pd, epsd) if isDouble else (1, F(m), 't', pt, epst)
    for i in range(len(pq_list))[num_bracket:num_bracket + 1]:
        TYPE = 'HAM' if isAver else 'PHI'
        PATH_SAVE = PREFIX + 'HDM/' + TYPE + '3/T1T1' + TYPE2 + '1' + out_post + '_TOR' + str(
            t_order_max).rjust(2,
                               '0') + '/' + pq_list[i] + '_' + qp_list[i] + '/'
        for file1 in os.listdir(PATH_CHN + qp_list[i]):  # diff L,q (chn q,L)
            diff1 = epst(0)
            lf(diff1, PATH_CHN + qp_list[i] + '/' + file1, df.boost_portable,
               cf.bzip2)
            diff1 = truncate_degree(diff1, F(m), pq_list[8:])
            new_diff1 = epst2(0)
            for item1 in diff1.list:
                if t_order(item1[1]) <= t_order_max:
                    new_diff1 += one * (item1[0] * item1[1])
            #new_diff1 = epst(0)
            #lf(new_diff1, PATH_CHN + qp_list[i]+'/'+file1, df.boost_portable, cf.bzip2)
            #new_diff1 = truncate_degree(new_diff1, F(m), pq_list[8:])
            if isPrint:
                print file1[:
                            -16]  #+':', sum([len(item.list) for item in [jtem[0].list[0][0] for jtem in new_diff1.list]]), len(new_diff1.list)
            for subdir in os.listdir(PATH_BRA)[num_subr:num_subr + 1]:
                for file2 in os.listdir(PATH_BRA + subdir + '/'):
                    CHECK_FILE = PATH_SAVE + '/' + TYPE[0].lower(
                    ) + '3_' + file1[3:5] + '_(' + subdir + '_' + file2[
                        3:8] + ').eps' + type2 + '.boostp.bz2'
                    if not os.path.isfile(CHECK_FILE):
                        if '44' in file2[3:8]:
                            num_list = range(1, 5)
                        else:
                            num_list = range(int(file2[4:5]),
                                             int(file2[3:4]) + 1)
                            num_list += range(int(file2[7:8]),
                                              int(file2[6:7]) + 1)
                        if int(pq_list[i][1]) in num_list:
                            start = time.time()
                            diff2 = epst(0)
                            lf(diff2, PATH_BRA + subdir + '/' + file2,
                               df.boost_portable, cf.bzip2)
                            diff2 = truncate_degree(diff2, F(m), pq_list[8:])
                            new_diff2 = epst2(0)
                            for item1 in diff2.list:
                                if t_order(item1[1]) <= t_order_max:
                                    new_diff2 += one * (item1[0] * item1[1])
                            #new_diff2 = epst(0)
                            #lf(new_diff2, PATH_BRA + subdir+'/'+file2, df.boost_portable, cf.bzip2)
                            #new_diff2 = truncate_degree(new_diff2, F(m), pq_list[8:])
                            if i in range(4, 8):
                                s_prev = epst2('s' +
                                               str(i - 4)) if i != 4 else 1
                                part_diff_nu = -3 * epst2('K0')**2 * (
                                    epst2('m' + str(i - 4 + 1))**3 * s_prev *
                                    epst2('s' + str(i - 4 + 1))**
                                    -1) * epst2('L' + str(i - 4 + 1))**-4
                                epst2.register_custom_derivative(
                                    qp_list[i],
                                    lambda temp: temp.partial(qp_list[
                                        i]) + temp.partial(r'\nu_{' + pq_list[
                                            i] + r'}') * part_diff_nu)
                                new_diff2 = partial(new_diff2, qp_list[i])
                                epst2.unregister_all_custom_derivatives()
                            else:
                                new_diff2 = partial(new_diff2, qp_list[i])
                            if isPrint:
                                print subdir, file2[:
                                                    -16]  #+':', sum([len(item.list) for item in [jtem[0].list[0][0] for jtem in new_diff2.list]]), len(new_diff2.list)
                            pt2.set_auto_truncate_degree(max_m, pq_list[8:])
                            if isAver:
                                count = 0
                                new_result = epst2(0)
                                for item in new_diff1.list:
                                    for jtem in new_diff2.list:
                                        trig = item[1] * jtem[1]
                                        for ktem in trig.list:
                                            if ktem[1] == 1:
                                                temp_result = c * (item[0] *
                                                                   jtem[0] *
                                                                   ktem[0])
                                                new_result = new_result + temp_result
                                    print c, item[1]
                                    count += 1
                            else:
                                result = c * new_diff1 * new_diff2
                            pt2.unset_auto_truncate_degree()
                            if not isAver:
                                new_result = epst2(0)
                                for item1 in result.list:
                                    if t_order(item1[1]) <= t_order_max:
                                        new_result += item1[0] * item1[1]
                            if new_result != epst2(0):
                                if not os.path.exists(PATH_SAVE):
                                    os.makedirs(PATH_SAVE)
                                sf(
                                    new_result.trim(), PATH_SAVE + '/' +
                                    TYPE[0].lower() + '3_' + file1[3:5] +
                                    '_(' + subdir + '_' + file2[3:8] +
                                    ').eps' + type2 + '.boostp.bz2',
                                    df.boost_portable, cf.bzip2)
                            print 'bracket:', pq_list[i] + '_' + qp_list[
                                i], file1[:-16], file2[:-16], str(
                                    '%.1f' % (time.time() - start)).rjust(
                                        4, ' '), 's'
Example #7
0
File: hdm.py Project: celesmec/eps3
def pb_t2h1(m=4,
            type_br=0,
            num_br=0,
            num_subr=0,
            t_order_max=20,
            in1_post='',
            in2_post='',
            out_post='',
            isAver=True,
            isDouble=False,
            isPrint=True):
    """
	Poisson bracket {T_2, H_1}.
	"""
    from pyranha.math import cos, sin, degree, ldegree, t_degree, t_ldegree, t_order, t_lorder, truncate_degree
    in1_post = in1_post if in1_post == '' else '_' + in1_post
    in2_post = in2_post if in2_post == '' else '_' + in2_post
    out_post = out_post if out_post == '' else '_' + out_post
    PBRACKETS = [
        'H2', 'T1H1_TOR' + str(t_order_max).rjust(2, '0'),
        'T1A1_TOR' + str(t_order_max).rjust(2, '0')
    ]
    PATHS_CHN = [
        PREFIX + 'HDM/CHN2/' + ITEM + in1_post + '/' for ITEM in PBRACKETS
    ]
    PATH_PHI = PREFIX + 'HDM/D_PHI1/H1' + in2_post + '/'
    (c, one, max_m, type2, pt2,
     epst2) = (0.5, 1., m, 'd', pd, epsd) if isDouble else (F(1, 2), 1, F(m),
                                                            't', pt, epst)
    for j in range(len(PATHS_CHN))[type_br:type_br + 1]:
        for i in range(len(pq_list))[num_br:num_br + 1]:
            listdir = os.listdir(PATHS_CHN[j] + qp_list[i] +
                                 '/') if not ('H2' in PATHS_CHN[j]) else ['']
            TYPE = 'HAM' if isAver else 'PHI'
            PATH_SAVE = PREFIX + 'HDM/' + TYPE + '3/T2H1_' + PBRACKETS[
                j] + out_post + '/' + pq_list[i] + '_' + qp_list[i] + '/'
            for subdir in listdir[num_subracket:num_subracket + 1]:
                for file1 in os.listdir(PATHS_CHN[j] + qp_list[i] + '/' +
                                        subdir + '/'):
                    #diff1 = epst2(0)
                    #lf(diff1, PATHS_CHN[j] + qp_list[i]+'/'+subdir+'/'+file1, df.boost_portable, cf.bzip2)
                    #diff1 = truncate_degree(diff1, F(m), pq_list[8:])
                    #new_diff1 = epst2(0)
                    #for item1 in diff1.list:
                    #	if t_order(item1[1]) <= t_order_max:
                    #		new_diff1 += one*(item1[0]*item1[1])
                    new_diff1 = epst2(0)
                    lf(new_diff1,
                       PATHS_CHN[j] + qp_list[i] + '/' + subdir + '/' + file1,
                       df.boost_portable, cf.bzip2)
                    new_diff1 = truncate_degree(new_diff1, F(m), pq_list[8:])
                    if isPrint:
                        print file1[:
                                    -16]  #, '->', sum([len(item.list) for item in [jtem[0].list[0][0] for jtem in new_diff1.list]]), len(new_diff1.list)
                    for file2 in os.listdir(PATH_PHI + qp_list[i] + '/'):
                        FILE_CHECK = PATH_SAVE + '/' + TYPE[0].lower(
                        ) + '3_(' + subdir + ')_(' + file1[3:8] + ')_' + file2[
                            3:5] + '.eps' + type2 + '.boostp.bz2'
                        if not os.path.isfile(FILE_CHECK):
                            start = time.time()
                            #diff2 = epst2(0)
                            #lf(diff2, PATH_PHI + qp_list[i]+'/'+file2, df.boost_portable, cf.bzip2)
                            #diff2 = truncate_degree(diff2, F(m), pq_list[8:])
                            #new_diff2 = epst2(0)
                            #for item1 in diff2.list:
                            #if t_order(item1[1]) <= t_order_max:
                            #new_diff2 += one*(item1[0]*item1[1])
                            new_diff2 = epst2(0)
                            lf(new_diff2, PATH_PHI + qp_list[i] + '/' + file2,
                               df.boost_portable, cf.bzip2)
                            new_diff2 = truncate_degree(
                                new_diff2, F(m), pq_list[8:])
                            if isPrint:
                                print file2[:
                                            -16]  #, '->', sum([len(item.list) for item in [jtem[0].list[0][0] for jtem in new_diff2.list]]), len(new_diff2.list)
                            pt2.set_auto_truncate_degree(max_m, pq_list[8:])
                            if isAver:
                                count = 0
                                new_result = epst2(0)
                                for item in new_diff1.list:
                                    for jtem in new_diff2.list:
                                        trig = item[1] * jtem[1]
                                        for ktem in trig.list:
                                            if ktem[1] == 1:
                                                new_result = new_result + c * item[
                                                    0] * jtem[0] * ktem[0]
                                    count += 1
                                    print count, item[1]
                            else:
                                result = c * new_diff1 * new_diff2
                            pt2.unset_auto_truncate_degree()
                            if not isAver:
                                new_result = epst2(0)
                                for item1 in result.list:
                                    if t_order(item1[1]) <= t_order_max:
                                        new_result += item1[0] * item1[1]
                            if isPrint:
                                print 'done'  #, '->', sum([len(item.list) for item in [jtem[0].list[0][0] for jtem in new_result.list]]), len(new_result.list)
                            if new_result != epst2(0):
                                if not os.path.exists(PATH_SAVE):
                                    os.makedirs(PATH_SAVE)
                                sf(
                                    new_result.trim(), PATH_SAVE + '/' +
                                    TYPE[0].lower() + '3_(' + subdir + ')_(' +
                                    file1[3:8] + ')_' + file2[3:5] + '.eps' +
                                    type2 + '.boostp.bz2', df.boost_portable,
                                    cf.bzip2)
                            print 'bracket:', pq_list[i] + '_' + qp_list[
                                i], file1[:-16], file2[:-16], str(
                                    '%.1f' % (time.time() - start)).rjust(
                                        4, ' '), 's'
Example #8
0
File: hdm.py Project: celesmec/eps3
def pb_t1hN(N=1,
            m=6,
            pqi=0,
            t_order_max=40,
            in1_post='',
            in2_post='',
            out_post='',
            isAver=True,
            isDouble=False,
            isPrint=True):
    """
	Poisson brackets {T_1, H_1} and {T_1, H_2}.
	"""
    from pyranha.math import cos, sin, degree, ldegree, t_degree, t_ldegree, t_order, t_lorder, truncate_degree
    in1_post = in1_post if in1_post == '' else '_' + in1_post
    in2_post = in2_post if in2_post == '' else '_' + in2_post
    out_post = out_post if out_post == '' else '_' + out_post
    PATH_CHN = PREFIX + 'HDM/CHN1/H1' + in1_post + '/'
    PATH_PHI = PREFIX + 'HDM/D_PHI' + str(N) + '/H' + str(N) + in2_post + '/'
    (c, one, max_m, type2, pt2,
     epst2) = (0.5, 1., m, 'd', pd, epsd) if isDouble else (F(1, 2), 1, F(m),
                                                            't', pt, epst)
    pairs = [['21_31', '31_21', '21_41', '41_21', '31_41', '41_31'], ['21_32', '32_21', '21_42', '42_21', '32_42', '42_32'],\
       ['31_32', '32_31', '31_43', '43_31', '32_43', '43_32'], ['41_42', '42_41', '41_43', '43_41', '42_43', '43_42']]
    for i in range(len(pq_list))[pqi:pqi + 1]:
        for file1 in os.listdir(PATH_CHN + qp_list[i]):
            diff1 = epst(0)
            lf(diff1, PATH_CHN + qp_list[i] + '/' + file1, df.boost_portable,
               cf.bzip2)
            diff1 = truncate_degree(diff1, F(m), pq_list[8:])
            new_diff1 = epst2(0)
            for item1 in diff1.list:
                if t_order(item1[1]) <= t_order_max:
                    new_diff1 += one * (item1[0] * item1[1])
            if isPrint:
                print file1[:
                            -16]  #, '->', sum([len(item.list) for item in [jtem[0].list[0][0] for jtem in new_diff1.list]]), len(new_diff1.list)
            for file2 in os.listdir(PATH_PHI + qp_list[i]):
                TYPE = 'HAM' if isAver else 'PHI'
                PATH_SAVE = PREFIX + 'HDM/' + TYPE + str(N + 1) + '/T1H' + str(
                    N) + out_post + '_TOR' + str(t_order_max).rjust(
                        2, '0') + '/' + pq_list[i] + '_' + qp_list[i] + '/'
                FILE_SAVE = '/' + TYPE[0].lower() + str(N + 1) + '_' + file1[
                    3:5] + '_' + file2[3:5] + '.eps' + type2 + '.boostp.bz2'
                start = time.time()
                if not os.path.exists(PATH_SAVE + FILE_SAVE):
                    diff2 = epst(0)
                    lf(diff2, PATH_PHI + qp_list[i] + '/' + file2,
                       df.boost_portable, cf.bzip2)
                    diff2 = truncate_degree(diff2, F(m), pq_list[8:])
                    new_diff2 = epst2(0)
                    for item1 in diff2.list:
                        if t_order(item1[1]) <= t_order_max:
                            new_diff2 += one * (item1[0] * item1[1])
                    if isPrint:
                        print file2[:
                                    -16]  #, '->', sum([len(item.list) for item in [jtem[0].list[0][0] for jtem in new_diff2.list]]), len(new_diff2.list)
                    if isAver:
                        count = 0
                        new_result = epst2(0)
                        pt2.set_auto_truncate_degree(max_m, pq_list[8:])
                        for item in new_diff1.list:
                            for jtem in new_diff2.list:
                                trig = item[1] * jtem[1]
                                for ktem in trig.list:
                                    if ktem[1] == 1:
                                        new_result = new_result + c * item[
                                            0] * jtem[0] * ktem[0]
                            count += 1
                            print count, item[1]
                        pt2.unset_auto_truncate_degree()
                    else:
                        #count = 0
                        #result = epst2(0)
                        #pt2.set_auto_truncate_degree(max_m, pq_list[8:])
                        #for item in new_diff1.list:
                        #temp = c*item[0]*item[1]*new_diff2
                        #new_temp = epst2(0)
                        #for item1 in temp.list:
                        #if t_order(item1[1]) <= t_order_max:
                        #new_temp += item1[0]*item1[1]
                        #result = result + new_temp
                        #count += 1
                        #print count, item[1]
                        result = c * new_diff1 * new_diff2
                        pt2.unset_auto_truncate_degree()
                    if not isAver:
                        new_result = epst2(0)
                        for item1 in result.list:
                            if t_order(item1[1]) <= t_order_max:
                                new_result += item1[0] * item1[1]
                    if isPrint:
                        print 'done'  #, '->", sum([len(item.list) for item in [jtem[0].list[0][0] for jtem in new_result.list]]), len(new_result.list)
                    if new_result != epst2(0):
                        if not os.path.exists(PATH_SAVE):
                            os.makedirs(PATH_SAVE)
                        sf(new_result.trim(), PATH_SAVE + FILE_SAVE,
                           df.boost_portable, cf.bzip2)
                print 'bracket:', pq_list[i] + '_' + qp_list[
                    i], file1[:-16], file2[:-16], str(
                        '%.1f' % (time.time() - start)).rjust(4, ' '), 's'
Example #9
0
File: hdm.py Project: celesmec/eps
def ham_s(max_deg,
          order=2,
          num_item=1,
          t_order_max=15,
          bracket='',
          prefix='',
          save_bracket=True):
    """
	"""
    from pyranha.math import truncate_degree
    if order == 1:
        PATH, index = PREFIX + 'HDM/HAM1/H1/', ''
    if order > 1:
        pbrackets = ['T1H1'] if order == 2 else [
            'T1H2', 'T2H1_H2', 'T2H1_T1A1', 'T2H1_T1H1', 'T1T1H1', 'T1T1A1'
        ]
        if num_item == 1:
            PATH, index = PREFIX + 'HDM/HAM' + str(order) + '/H' + str(
                order) + '/', '_' + str(order)
        if num_item > 1:
            PATH = PREFIX + 'HDM/HAM' + str(order) + '/' + pbrackets[
                num_item - 2] + '_TOR' + str(t_order_max).rjust(2, '0') + '/'
            index = '_' + pbrackets[num_item - 2].lower() + '_tor' + str(
                t_order_max).rjust(2, '0')
    PATH_SAVE = PREFIX + 'HDM/SUMS/HAM/HAM' + str(order) + prefix + '/'
    if not os.path.exists(PATH_SAVE): os.makedirs(PATH_SAVE)
    print PATH[len(PREFIX):], '->', PATH_SAVE[len(PREFIX):]
    list_dirs = os.listdir(PATH) if num_item != 1 else ['']
    series = epst(0)
    for subdir in list_dirs:
        series_temp = epst(0)
        for file2 in os.listdir(PATH + subdir + '/'):
            temp = epst(0)
            if bracket == '':
                lf(temp, PATH + subdir + '/' + file2, df.boost_portable,
                   cf.bzip2)
                if max_deg > 0:
                    temp = truncate_degree(temp, max_deg, pq_list[8:])
                if save_bracket: series_temp += temp
                else: series += temp
                print '>', file2[:-16]
            if file2[4:9] == bracket:
                lf(temp, PATH + subdir + '/' + file2, df.boost_portable,
                   cf.bzip2)
                if max_deg > 0:
                    temp = truncate_degree(temp, max_deg, pq_list[8:])
                series_temp += temp
                print '>', file2[:-16]
        if bracket != '':
            sf(
                series_temp.trim(), PATH_SAVE + 'h' + str(order) + index +
                '_(' + subdir + ')_' + bracket + '.epst.boostp.bz2',
                df.boost_portable, cf.bzip2)
        if save_bracket and bracket == '':
            sf(
                series_temp.trim(), PATH_SAVE + 'h' + str(order) + index +
                '_(' + subdir + ').epst.boostp.bz2', df.boost_portable,
                cf.bzip2)
    if (not save_bracket) and (bracket == ''):
        sf(series.trim(),
           PATH_SAVE + 'h' + str(order) + index + '.epst.boostp.bz2',
           df.boost_portable, cf.bzip2)
Example #10
0
File: hdm.py Project: celesmec/eps
def pb_t1hN(N=1,
            m=6,
            t_order_max=20,
            isAver=True,
            isDouble=False,
            isPrint=True):
    """
	"""
    from pyranha.math import cos, sin, degree, ldegree, t_degree, t_ldegree, t_order, t_lorder, truncate_degree
    PATH_CHN = PREFIX + 'HDM/CHN1/H1/'
    PATH_PHI = PREFIX + 'HDM/DIF1/PHI' + str(N) + '/H' + str(N) + '/'
    if N == 1: c = 0.5 if isDouble else F(1, 2)
    if N == 2: c = -0.5 if isDouble else F(-1, 2)
    (one, max_m, type2, pt2,
     epst2) = (1., m, 'd', pd, epsd) if isDouble else (1, F(m), 't', pt, epst)
    for i in range(len(pq_list)):
        for file1 in os.listdir(PATH_CHN + qp_list[i]):
            diff1 = epst(0)
            lf(diff1, PATH_CHN + qp_list[i] + '/' + file1, df.boost_portable,
               cf.bzip2)
            diff1 = truncate_degree(diff1, F(m), pq_list[8:])
            new_diff1 = epst2(0)
            for item1 in diff1.list:
                if t_order(item1[1]) <= t_order_max:
                    new_diff1 += one * (item1[0] * item1[1])
            if isPrint:
                print file1[:-16] + ':', sum([
                    len(item.list) for item in
                    [jtem[0].list[0][0] for jtem in new_diff1.list]
                ]), len(new_diff1.list)
            for file2 in os.listdir(PATH_PHI + qp_list[i]):
                start = time.time()
                diff2 = epst(0)
                lf(diff2, PATH_PHI + qp_list[i] + '/' + file2,
                   df.boost_portable, cf.bzip2)
                diff2 = truncate_degree(diff2, F(m), pq_list[8:])
                new_diff2 = epst2(0)
                for item1 in diff2.list:
                    if t_order(item1[1]) <= t_order_max:
                        new_diff2 += one * (item1[0] * item1[1])
                if isPrint:
                    print file2[:-16] + ':', sum([
                        len(item.list) for item in
                        [jtem[0].list[0][0] for jtem in new_diff2.list]
                    ]), len(new_diff2.list)
                if isAver:
                    count = 0
                    new_result = epst2(0)
                    pt2.set_auto_truncate_degree(max_m, pq_list[8:])
                    for item in new_diff1.list:
                        for jtem in new_diff2.list:
                            trig = item[1] * jtem[1]
                            for ktem in trig.list:
                                if ktem[1] == 1:
                                    new_result = new_result + c * item[
                                        0] * jtem[0] * ktem[0]
                        count += 1
                        print count, item[1]
                    pt2.unset_auto_truncate_degree()
                else:
                    pt2.set_auto_truncate_degree(max_m, pq_list[8:])
                    result = c * new_diff1 * new_diff2
                    pt2.unset_auto_truncate_degree()
                if not isAver:
                    new_result = epst2(0)
                    for item1 in result.list:
                        if t_order(item1[1]) <= t_order_max:
                            new_result += item1[0] * item1[1]
                if isPrint:
                    print 'result:', sum([
                        len(item.list) for item in
                        [jtem[0].list[0][0] for jtem in new_result.list]
                    ]), len(new_result.list)
                if new_result != epst2(0):
                    TYPE = 'HAM' if isAver else 'PHI'
                    PATH_SAVE = PREFIX + 'HDM/' + TYPE + str(
                        N +
                        1) + '/T1H' + str(N) + '_TOR' + str(t_order_max).rjust(
                            2, '0') + '/' + pq_list[i] + '_' + qp_list[i] + '/'
                    if not os.path.exists(PATH_SAVE): os.makedirs(PATH_SAVE)
                    sf(
                        new_result.trim(), PATH_SAVE + '/' + TYPE[0].lower() +
                        str(N + 1) + '_' + file1[3:5] + '_' + file2[3:5] +
                        '.eps' + type2 + '.boostp.bz2', df.boost_portable,
                        cf.bzip2)
                print 'bracket:', pq_list[i] + '_' + qp_list[
                    i], file1[:-16], file2[:-16], str(
                        '%.1f' % (time.time() - start)).rjust(4, ' '), 's'