X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fcolor.cpp;h=7081998d05d14614589e84d0161ebec934f685af;hp=dcc106dacda8309fec7f86c90ed295225a9f805d;hb=cd22e73d44e3320898f62a0accdbbe005b33d3e5;hpb=85f46b3d72dbafb6fe1fbb9bca32ec612cf8b480 diff --git a/ginac/color.cpp b/ginac/color.cpp index dcc106da..7081998d 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 @@ -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);