Для удобства можно включить библиотеку tgmath.h
для макросов типа генерации. Он создает то же имя функции, что и двойная версия для всех типов переменных. Например, например, он определяет макрос sqrt()
, который расширяется до функции sqrtf()
, sqrt()
или sqrtl()
, в зависимости от типа предоставленного аргумента.
Поэтому не нужно помнить имя соответствующей функции для разных типов переменных!
#include <stdio.h>
#include <tgmath.h>//for the type generate macros.
#include <complex.h>//for easier declare complex variables and complex unit I
int main(void)
{
double complex z1=1./4.*M_PI+1./4.*M_PI*I;//M_PI is just pi=3.1415...
double complex z2, z3, z4, z5;
z2=exp(z1);
z3=sin(z1);
z4=sqrt(z1);
z5=log(z1);
printf("exp(z1)=%lf + %lf I\n", creal(z2),cimag(z2));
printf("sin(z1)=%lf + %lf I\n", creal(z3),cimag(z3));
printf("sqrt(z1)=%lf + %lf I\n", creal(z4),cimag(z4));
printf("log(z1)=%lf + %lf I\n", creal(z5),cimag(z5));
return 0;
}
Для меня git branch --merged
не показывает ответвления, которые были объединены через PR GitHub. Я не уверен в причинах, но я использую следующую строку для удаления все местные филиалы, которые не имеют удаленного ответвления отслеживания :
diff <(git branch --format "%(refname:short)") <(git branch -r | grep -v HEAD | cut -d/ -f2-) | grep '<' | cut -c 3- | xargs git branch -D
Объяснение:
git branch --format "%(refname:short)"
дает список местных филиалов git branch -r | grep -v HEAD | cut -d/ -f2-
, дает список удаленных ответвлений, отфильтровывание HEAD
diff <(...) <(...)
дает разность вывода двух команд в круглых скобках grep '<'
ответвления фильтров, которые существуют в первом списке, но не во втором cut -c 3-
дает строку, начинающую с 3-го символа, таким образом удаление префикса <
xargs git branch -D
выполняется git branch -D
против каждого имени ответвления , С другой стороны, можно избежать grep -v '<'
как это:
diff --old-line-format="%L" --new-line-format="" --unchanged-line-format="" <(git branch --format "%(refname:short)") <(git branch -r | grep -v HEAD | cut -d/ -f2-) | xargs git branch -D
Учитывая Вас хочу удалить объединенные ответвления, необходимо удалить удаленно отслеживающие ответвления только, если Вы не заявляете иначе.
Так для удаления тех ответвлений можно сделать это
git branch --remote --merged origin/master | egrep -v "(^\*|master|development)" | cut -b 10- | xargs git push --delete origin
, Это удалит все объединенные ответвления (объединенный с ведущим устройством) кроме master
и development
.