Skip to content
Snippets Groups Projects
Gmsh.tab.cpp 299 KiB
Newer Older
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 167:
#line 2148 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 168:
#line 2152 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), 
		    0., 0., 0., (yyvsp[(3) - (13)].v)[0], (yyvsp[(3) - (13)].v)[1], (yyvsp[(3) - (13)].v)[2], (yyvsp[(5) - (13)].v)[0], (yyvsp[(5) - (13)].v)[1], (yyvsp[(5) - (13)].v)[2], (yyvsp[(7) - (13)].d),
		    &extr, (yyval.l));
      List_Delete((yyvsp[(10) - (13)].l));
    ;}
    break;

  case 169:
#line 2160 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 170:
#line 2164 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), 
		    (yyvsp[(3) - (15)].v)[0], (yyvsp[(3) - (15)].v)[1], (yyvsp[(3) - (15)].v)[2], (yyvsp[(5) - (15)].v)[0], (yyvsp[(5) - (15)].v)[1], (yyvsp[(5) - (15)].v)[2], (yyvsp[(7) - (15)].v)[0], (yyvsp[(7) - (15)].v)[1], (yyvsp[(7) - (15)].v)[2], (yyvsp[(9) - (15)].d),
		    &extr, (yyval.l));
      List_Delete((yyvsp[(12) - (15)].l));
    ;}
    break;

  case 171:
#line 2172 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 172:
#line 2176 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
		    &extr, (yyval.l));
      List_Delete((yyvsp[(3) - (6)].l));
    ;}
    break;

  case 173:
#line 2185 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), 
		   (yyvsp[(6) - (8)].v)[0], (yyvsp[(6) - (8)].v)[1], (yyvsp[(6) - (8)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
		   NULL, (yyval.l));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 174:
#line 2192 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), 
		   (yyvsp[(6) - (8)].v)[0], (yyvsp[(6) - (8)].v)[1], (yyvsp[(6) - (8)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
		   NULL, (yyval.l));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 175:
#line 2199 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   (yyvsp[(6) - (8)].v)[0], (yyvsp[(6) - (8)].v)[1], (yyvsp[(6) - (8)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
		   NULL, (yyval.l));
    ;}
    break;

  case 176:
#line 2206 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), 
		   0., 0., 0., (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], (yyvsp[(8) - (12)].v)[0], (yyvsp[(8) - (12)].v)[1], (yyvsp[(8) - (12)].v)[2], (yyvsp[(10) - (12)].d),
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   NULL, (yyval.l));
    ;}
    break;

  case 177:
#line 2213 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), 
		   0., 0., 0., (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], (yyvsp[(8) - (12)].v)[0], (yyvsp[(8) - (12)].v)[1], (yyvsp[(8) - (12)].v)[2], (yyvsp[(10) - (12)].d),
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   NULL, (yyval.l));
    ;}
    break;

  case 178:
#line 2220 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   0., 0., 0., (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], (yyvsp[(8) - (12)].v)[0], (yyvsp[(8) - (12)].v)[1], (yyvsp[(8) - (12)].v)[2], (yyvsp[(10) - (12)].d),
		   NULL, (yyval.l));
    ;}
    break;

  case 179:
#line 2227 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), 
		   (yyvsp[(6) - (14)].v)[0], (yyvsp[(6) - (14)].v)[1], (yyvsp[(6) - (14)].v)[2], (yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2], (yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2], (yyvsp[(12) - (14)].d),
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   NULL, (yyval.l));
    ;}
    break;

  case 180:
#line 2234 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), 
		   (yyvsp[(6) - (14)].v)[0], (yyvsp[(6) - (14)].v)[1], (yyvsp[(6) - (14)].v)[2], (yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2], (yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2], (yyvsp[(12) - (14)].d),
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   NULL, (yyval.l));
    ;}
    break;

  case 181:
#line 2241 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   (yyvsp[(6) - (14)].v)[0], (yyvsp[(6) - (14)].v)[1], (yyvsp[(6) - (14)].v)[2], (yyvsp[(8) - (14)].v)[0], (yyvsp[(8) - (14)].v)[1], (yyvsp[(8) - (14)].v)[2], (yyvsp[(10) - (14)].v)[0], (yyvsp[(10) - (14)].v)[1], (yyvsp[(10) - (14)].v)[2], (yyvsp[(12) - (14)].d),
		   NULL, (yyval.l));
    ;}
    break;

  case 182:
#line 2248 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 183:
#line 2252 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), 
		   (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
		   &extr, (yyval.l));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 184:
#line 2259 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 185:
#line 2263 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
		   &extr, (yyval.l));
    ;}
    break;

  case 186:
#line 2270 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 187:
#line 2274 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   (yyvsp[(6) - (12)].v)[0], (yyvsp[(6) - (12)].v)[1], (yyvsp[(6) - (12)].v)[2], 0., 0., 0., 0., 0., 0., 0.,
		   &extr, (yyval.l));
    ;}
    break;

  case 188:
#line 2281 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 189:
#line 2285 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), 
		   0., 0., 0., (yyvsp[(6) - (16)].v)[0], (yyvsp[(6) - (16)].v)[1], (yyvsp[(6) - (16)].v)[2], (yyvsp[(8) - (16)].v)[0], (yyvsp[(8) - (16)].v)[1], (yyvsp[(8) - (16)].v)[2], (yyvsp[(10) - (16)].d),
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   &extr, (yyval.l));
    ;}
    break;

  case 190:
#line 2292 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 191:
#line 2296 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   0., 0., 0., (yyvsp[(6) - (16)].v)[0], (yyvsp[(6) - (16)].v)[1], (yyvsp[(6) - (16)].v)[2], (yyvsp[(8) - (16)].v)[0], (yyvsp[(8) - (16)].v)[1], (yyvsp[(8) - (16)].v)[2], (yyvsp[(10) - (16)].d),
		   &extr, (yyval.l));
    ;}
    break;

  case 192:
#line 2303 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 193:
#line 2307 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   0., 0., 0., (yyvsp[(6) - (16)].v)[0], (yyvsp[(6) - (16)].v)[1], (yyvsp[(6) - (16)].v)[2], (yyvsp[(8) - (16)].v)[0], (yyvsp[(8) - (16)].v)[1], (yyvsp[(8) - (16)].v)[2], (yyvsp[(10) - (16)].d),
		   &extr, (yyval.l));
    ;}
    break;

  case 194:
#line 2314 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 195:
#line 2318 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), 
		   (yyvsp[(6) - (18)].v)[0], (yyvsp[(6) - (18)].v)[1], (yyvsp[(6) - (18)].v)[2], (yyvsp[(8) - (18)].v)[0], (yyvsp[(8) - (18)].v)[1], (yyvsp[(8) - (18)].v)[2], (yyvsp[(10) - (18)].v)[0], (yyvsp[(10) - (18)].v)[1], (yyvsp[(10) - (18)].v)[2], (yyvsp[(12) - (18)].d),
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   &extr, (yyval.l));
    ;}
    break;

  case 196:
#line 2325 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 197:
#line 2329 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   (yyvsp[(6) - (18)].v)[0], (yyvsp[(6) - (18)].v)[1], (yyvsp[(6) - (18)].v)[2], (yyvsp[(8) - (18)].v)[0], (yyvsp[(8) - (18)].v)[1], (yyvsp[(8) - (18)].v)[2], (yyvsp[(10) - (18)].v)[0], (yyvsp[(10) - (18)].v)[1], (yyvsp[(10) - (18)].v)[2], (yyvsp[(12) - (18)].d),
		   &extr, (yyval.l));
    ;}
    break;

  case 198:
#line 2336 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 199:
#line 2340 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      (yyval.l) = List_Create(2, 1, sizeof(Shape));
      ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		   (yyvsp[(6) - (18)].v)[0], (yyvsp[(6) - (18)].v)[1], (yyvsp[(6) - (18)].v)[2], (yyvsp[(8) - (18)].v)[0], (yyvsp[(8) - (18)].v)[1], (yyvsp[(8) - (18)].v)[2], (yyvsp[(10) - (18)].v)[0], (yyvsp[(10) - (18)].v)[1], (yyvsp[(10) - (18)].v)[2], (yyvsp[(12) - (18)].d),
		   &extr, (yyval.l));
    ;}
    break;

  case 200:
#line 2351 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
    ;}
    break;

  case 201:
#line 2354 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
    ;}
    break;

  case 202:
#line 2360 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.ExtrudeMesh = true;
      extr.mesh.NbLayer = 1;
      extr.mesh.NbElmLayer.clear();
      extr.mesh.hLayer.clear();
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.NbElmLayer.push_back((int)fabs((yyvsp[(3) - (5)].d)));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.hLayer.push_back(1.);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 203:
#line 2369 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      extr.mesh.ExtrudeMesh = true;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l));
      if(List_Nbr((yyvsp[(3) - (7)].l)) == List_Nbr((yyvsp[(5) - (7)].l))){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	extr.mesh.NbElmLayer.clear();
	extr.mesh.hLayer.clear();
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){
	  double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  List_Read((yyvsp[(3) - (7)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  extr.mesh.NbElmLayer.push_back((d > 0) ? (int)d : 1);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  List_Read((yyvsp[(5) - (7)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  extr.mesh.hLayer.push_back(d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      else
	yymsg(0, "Wrong layer definition {%d, %d}", List_Nbr((yyvsp[(3) - (7)].l)), List_Nbr((yyvsp[(5) - (7)].l)));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(3) - (7)].l));
      List_Delete((yyvsp[(5) - (7)].l));
    ;}
    break;

  case 204:
#line 2389 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      yymsg(0, "Explicit region numbers in layers are deprecated");
      extr.mesh.ExtrudeMesh = true;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (9)].l));
      if(List_Nbr((yyvsp[(3) - (9)].l)) == List_Nbr((yyvsp[(5) - (9)].l)) && List_Nbr((yyvsp[(3) - (9)].l)) == List_Nbr((yyvsp[(7) - (9)].l))){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	extr.mesh.NbElmLayer.clear();
	extr.mesh.hLayer.clear();
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(int i = 0; i < List_Nbr((yyvsp[(3) - (9)].l)); i++){
	  double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  List_Read((yyvsp[(3) - (9)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  extr.mesh.NbElmLayer.push_back((d > 0) ? (int)d : 1);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  List_Read((yyvsp[(7) - (9)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  extr.mesh.hLayer.push_back(d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      else
	yymsg(0, "Wrong layer definition {%d, %d, %d}", List_Nbr((yyvsp[(3) - (9)].l)), 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	      List_Nbr((yyvsp[(5) - (9)].l)), List_Nbr((yyvsp[(7) - (9)].l)));
      List_Delete((yyvsp[(3) - (9)].l));
      List_Delete((yyvsp[(5) - (9)].l));
      List_Delete((yyvsp[(7) - (9)].l));
    ;}
    break;

  case 205:
#line 2412 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      extr.mesh.Recombine = true;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 206:
#line 2416 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      int num = (int)(yyvsp[(3) - (9)].d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      if(FindSurface(num)){
	yymsg(0, "Surface %d already exists", num);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
      else{
	Surface *s = Create_Surface(num, MSH_SURF_DISCRETE);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	extr.mesh.Holes[num].first = (yyvsp[(8) - (9)].d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	extr.mesh.Holes[num].second.clear();
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	for(int i = 0; i < List_Nbr((yyvsp[(6) - (9)].l)); i++){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  List_Read((yyvsp[(6) - (9)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  extr.mesh.Holes[num].second.push_back((int)d);
	}
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(6) - (9)].l));
    ;}
    break;

  case 207:
#line 2440 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Read((yyvsp[(3) - (6)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int j = (int)fabs(d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
        Curve *c = FindCurve(j);
	  c->Method = MESH_TRANSFINITE;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  c->nbPointsTransfinite = ((yyvsp[(5) - (6)].d) > 2) ? (int)(yyvsp[(5) - (6)].d) : 2;
	  c->typeTransfinite = sign(d);
	  c->coeffTransfinite = 1.0;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(3) - (6)].l));
    ;}
    break;

  case 208:
#line 2458 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      for(int i = 0; i < List_Nbr((yyvsp[(3) - (9)].l)); i++){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Read((yyvsp[(3) - (9)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int j = (int)fabs(d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
        Curve *c = FindCurve(j);
	  c->Method = MESH_TRANSFINITE;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  c->nbPointsTransfinite = ((yyvsp[(5) - (9)].d) > 2) ? (int)(yyvsp[(5) - (9)].d) : 2;
	  c->typeTransfinite = sign(d); // Progresion : code 1 ou -1
	  c->coeffTransfinite = fabs((yyvsp[(8) - (9)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(3) - (9)].l));
    ;}
    break;

  case 209:
#line 2476 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      for(int i = 0; i < List_Nbr((yyvsp[(3) - (9)].l)); i++){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Read((yyvsp[(3) - (9)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int j = (int)fabs(d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
        Curve *c = FindCurve(j);
	  c->Method = MESH_TRANSFINITE;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  c->nbPointsTransfinite = ((yyvsp[(5) - (9)].d) > 2) ? (int)(yyvsp[(5) - (9)].d) : 2;
	  c->typeTransfinite = 2 * sign(d); // Bump : code 2 ou -2
	  c->coeffTransfinite = fabs((yyvsp[(8) - (9)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(3) - (9)].l));
    ;}
    break;

  case 210:
#line 2494 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      Surface *s = FindSurface((int)(yyvsp[(4) - (8)].d));
	yymsg(1, "Unknown surface %d", (int)(yyvsp[(4) - (8)].d));
	s->Method = MESH_TRANSFINITE;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	s->Recombine_Dir = -1;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int k = List_Nbr((yyvsp[(7) - (8)].l));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	if(k != 3 && k != 4){
	  yymsg(0, "Wrong definition of Transfinite Surface %d: "
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		"%d points instead of 3 or 4" , (int)(yyvsp[(4) - (8)].d), k);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  List_Reset(s->TrsfPoints);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  for(int i = 0; i < k; i++){
	    double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    List_Read((yyvsp[(7) - (8)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    int j = (int)fabs(d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    Vertex *v = FindPoint(j);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    if(!v)
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    else
	      List_Add(s->TrsfPoints, &v);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(7) - (8)].l));
    ;}
    break;

  case 211:
#line 2523 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      Surface *s = FindSurface((int)(yyvsp[(4) - (9)].d));
	yymsg(1, "Unknown surface %d", (int)(yyvsp[(4) - (9)].d));
	s->Method = MESH_TRANSFINITE;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int k = List_Nbr((yyvsp[(7) - (9)].l));
	if(k != 3 && k != 4){
	  yymsg(0, "Wrong definition of Transfinite Surface %d: "
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		"%d points instead of 3 or 4" , (int)(yyvsp[(4) - (9)].d), k);
	}
	else{
	  List_Reset(s->TrsfPoints);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  if (!strcmp((yyvsp[(8) - (9)].c), "Right"))
	    s->Recombine_Dir = 1;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  else if (!strcmp((yyvsp[(8) - (9)].c), "Left"))
	    s->Recombine_Dir = -1;
	  else
	    s->Recombine_Dir = 0;
	  for(int i = 0; i < k; i++){
	    double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    List_Read((yyvsp[(7) - (9)].l), i, &d);
	    int j = (int)fabs(d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    Vertex *v = FindPoint(j);
	    else
	      List_Add(s->TrsfPoints, &v);
	  }
	}
      }
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(7) - (9)].l));
      Free((yyvsp[(8) - (9)].c));
    ;}
    break;

  case 212:
#line 2558 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)");
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(7) - (8)].l));
    ;}
    break;

  case 213:
#line 2563 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      Volume *v = FindVolume((int)(yyvsp[(4) - (8)].d));
	yymsg(1, "Unknown volume %d", (int)(yyvsp[(4) - (8)].d));
	v->Method = MESH_TRANSFINITE;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int k = List_Nbr((yyvsp[(7) - (8)].l));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	if(k != 6 && k != 8)
	  yymsg(0, "Wrong definition of Transfinite Volume %d: "
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
		"%d points instead of 6 or 8" , (int)(yyvsp[(4) - (8)].d), k);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  List_Reset(v->TrsfPoints);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	  for(int i = 0; i < k; i++){
	    double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    List_Read((yyvsp[(7) - (8)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    int j = (int)fabs(d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    Vertex *vert = FindPoint(j);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    if(!vert)
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	    else
	      List_Add(v->TrsfPoints, &vert);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(7) - (8)].l));
    ;}
    break;

  case 214:
#line 2590 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Read((yyvsp[(3) - (6)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int j = (int)d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	Surface *s = FindSurface(j);
	  s->RecombineAngle = (yyvsp[(5) - (6)].d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(3) - (6)].l));
    ;}
    break;

  case 215:
#line 2604 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	double d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	List_Read((yyvsp[(3) - (4)].l), i, &d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	int j = (int)d;
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
        Surface *s = FindSurface(j);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      List_Delete((yyvsp[(3) - (4)].l));
    ;}
    break;

  case 216:
#line 2617 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
	double d;
	List_Read((yyvsp[(3) - (6)].l), i, &d);
	int j = (int)d;
	Surface *s = FindSurface(j);
Christophe Geuzaine's avatar
Christophe Geuzaine committed
	if(s) s->TransfiniteSmoothing = (int)(yyvsp[(5) - (6)].d);
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
      }
      List_Delete((yyvsp[(3) - (6)].l));
    ;}
    break;

  case 217:
#line 2634 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
      Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	setSurfaceEmbeddedPoints(s, (yyvsp[(3) - (10)].l));
    ;}
    break;

  case 218:
#line 2640 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
      Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	setSurfaceEmbeddedCurves(s, (yyvsp[(3) - (10)].l));
    ;}
    break;

  case 219:
#line 2646 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
    ;}
    break;

  case 220:
#line 2649 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    {
    ;}
    break;

  case 221:
#line 2658 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    ;}
    break;

  case 222:
#line 2662 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
      if(!strcmp((yyvsp[(2) - (3)].c), "Geometry"))
        ReplaceAllDuplicates();
      else if(!strcmp((yyvsp[(2) - (3)].c), "Mesh"))
        GModel::current()->removeDuplicateMeshVertices(CTX.geom.tolerance);
      else
        yymsg(0, "Unknown coherence command");
      Free((yyvsp[(2) - (3)].c));
    ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 223:
#line 2677 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(1) - (1)].d);           ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 224:
#line 2678 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(2) - (3)].d);           ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 225:
#line 2679 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = -(yyvsp[(2) - (2)].d);          ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 226:
#line 2680 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(2) - (2)].d);           ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 227:
#line 2681 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = !(yyvsp[(2) - (2)].d);          ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 228:
#line 2682 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d);      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 229:
#line 2683 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d);      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 230:
#line 2684 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d);      ;}
    break;

  case 231:
#line 2686 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { 
      if(!(yyvsp[(3) - (3)].d))
	yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
	(yyval.d) = (yyvsp[(1) - (3)].d) / (yyvsp[(3) - (3)].d);     
    ;}
    break;

  case 232:
#line 2692 "Gmsh.y"
    { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d);  ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 233:
#line 2693 "Gmsh.y"
    { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));  ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 234:
#line 2694 "Gmsh.y"
    { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d);      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 235:
#line 2695 "Gmsh.y"
    { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d);      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 236:
#line 2696 "Gmsh.y"
    { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 237:
#line 2697 "Gmsh.y"
    { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 238:
#line 2698 "Gmsh.y"
    { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 239:
#line 2699 "Gmsh.y"
    { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 240:
#line 2700 "Gmsh.y"
    { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 241:
#line 2701 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d);     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 242:
#line 2702 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 243:
#line 2703 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = exp((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 244:
#line 2704 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = log((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 245:
#line 2705 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = log10((yyvsp[(3) - (4)].d));    ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 246:
#line 2706 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = sqrt((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 247:
#line 2707 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = sin((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 248:
#line 2708 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = asin((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 249:
#line 2709 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = cos((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 250:
#line 2710 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = acos((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 251:
#line 2711 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = tan((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 252:
#line 2712 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = atan((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 253:
#line 2713 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 254:
#line 2714 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = sinh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 255:
#line 2715 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = cosh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 256:
#line 2716 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = tanh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 257:
#line 2717 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = fabs((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 258:
#line 2718 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = floor((yyvsp[(3) - (4)].d));    ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 259:
#line 2719 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = ceil((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 260:
#line 2720 "Gmsh.y"
    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 261:
#line 2721 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 262:
#line 2722 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 263:
#line 2723 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 264:
#line 2725 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = exp((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 265:
#line 2726 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = log((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 266:
#line 2727 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = log10((yyvsp[(3) - (4)].d));    ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 267:
#line 2728 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = sqrt((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 268:
#line 2729 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = sin((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 269:
#line 2730 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = asin((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 270:
#line 2731 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = cos((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 271:
#line 2732 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = acos((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 272:
#line 2733 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = tan((yyvsp[(3) - (4)].d));      ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 273:
#line 2734 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = atan((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 274:
#line 2735 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 275:
#line 2736 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = sinh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 276:
#line 2737 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = cosh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 277:
#line 2738 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = tanh((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 278:
#line 2739 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = fabs((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 279:
#line 2740 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = floor((yyvsp[(3) - (4)].d));    ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 280:
#line 2741 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = ceil((yyvsp[(3) - (4)].d));     ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 281:
#line 2742 "Gmsh.y"
    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 282:
#line 2743 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 283:
#line 2744 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 284:
#line 2745 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 285:
#line 2754 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = (yyvsp[(1) - (1)].d); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 286:
#line 2755 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = 3.141592653589793; ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 287:
#line 2756 "Gmsh.y"
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    { (yyval.d) = Msg::GetCommRank(); ;}
Christophe Geuzaine's avatar
 
Christophe Geuzaine committed
    break;

  case 288:
#line 2757 "Gmsh.y"