X-Git-Url: https://ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=ginac%2Fcolor.cpp;h=37f653a40f6a257d22bff20c43f3252ed7e81bea;hb=refs%2Ftags%2Frelease_1-7-1;hp=dcc106dacda8309fec7f86c90ed295225a9f805d;hpb=85f46b3d72dbafb6fe1fbb9bca32ec612cf8b480;p=ginac.git diff --git a/ginac/color.cpp b/ginac/color.cpp index dcc106da..37f653a4 100644 --- a/ginac/color.cpp +++ b/ginac/color.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's color (SU(3) Lie algebra) objects. */ /* - * GiNaC Copyright (C) 1999-2015 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2016 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -332,7 +332,7 @@ bool su3t::contract_with(exvector::iterator self, exvector::iterator other, exve // T.a S T.a = 1/2 Tr(S) - 1/6 S } else { - exvector::iterator it = self + 1; + auto it = self + 1; while (it != other) { if (!is_a(*it)) { return false; @@ -400,9 +400,7 @@ bool su3d::contract_with(exvector::iterator self, exvector::iterator other, exve && ex_to(*self).has_dummy_index_for(other[1].op(1))) { exvector self_indices = ex_to(*self).get_indices(); - exvector dummy_indices; - dummy_indices.push_back(other[0].op(1)); - dummy_indices.push_back(other[1].op(1)); + exvector dummy_indices = {other[0].op(1), other[1].op(1)}; int sig; ex a = permute_free_index_to_front(self_indices, dummy_indices, sig); *self = numeric(5, 6); @@ -453,9 +451,7 @@ bool su3f::contract_with(exvector::iterator self, exvector::iterator other, exve && ex_to(*self).has_dummy_index_for(other[1].op(1))) { exvector self_indices = ex_to(*self).get_indices(); - exvector dummy_indices; - dummy_indices.push_back(other[0].op(1)); - dummy_indices.push_back(other[1].op(1)); + exvector dummy_indices = {other[0].op(1), other[1].op(1)}; int sig; ex a = permute_free_index_to_front(self_indices, dummy_indices, sig); *self = numeric(3, 2) * sig * I; @@ -474,13 +470,13 @@ bool su3f::contract_with(exvector::iterator self, exvector::iterator other, exve ex color_ONE(unsigned char rl) { - static ex ONE = (new su3one)->setflag(status_flags::dynallocated); + static ex ONE = dynallocate(); return color(ONE, rl); } ex color_T(const ex & a, unsigned char rl) { - static ex t = (new su3t)->setflag(status_flags::dynallocated); + static ex t = dynallocate(); if (!is_a(a)) throw(std::invalid_argument("indices of color_T must be of type idx")); @@ -492,7 +488,7 @@ ex color_T(const ex & a, unsigned char rl) ex color_f(const ex & a, const ex & b, const ex & c) { - static ex f = (new su3f)->setflag(status_flags::dynallocated); + static ex f = dynallocate(); if (!is_a(a) || !is_a(b) || !is_a(c)) throw(std::invalid_argument("indices of color_f must be of type idx")); @@ -504,7 +500,7 @@ ex color_f(const ex & a, const ex & b, const ex & c) ex color_d(const ex & a, const ex & b, const ex & c) { - static ex d = (new su3d)->setflag(status_flags::dynallocated); + static ex d = dynallocate(); if (!is_a(a) || !is_a(b) || !is_a(c)) throw(std::invalid_argument("indices of color_d must be of type idx")); @@ -595,7 +591,7 @@ ex color_trace(const ex & e, const std::set & rls) // + 1/2 h_a(n-1)_an_k Tr T_a1 .. T_a(n-2) T_k const ex &last_index = e.op(num - 1).op(1); const ex &next_to_last_index = e.op(num - 2).op(1); - idx summation_index((new symbol)->setflag(status_flags::dynallocated), 8); + idx summation_index(dynallocate(), 8); exvector v1; v1.reserve(num - 2);