File: subgroups.cc

package info (click to toggle)
scalc 0.2.4-4
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,724 kB
  • ctags: 826
  • sloc: sh: 10,131; cpp: 1,580; makefile: 34
file content (42 lines) | stat: -rw-r--r-- 1,088 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
  subgroups.cc, copyright (c) 2006 by Vincent Fourmond: 
  The implementations for the subgroups (parentheses).
  
  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
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.
  
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details (in the COPYING file).
  
*/

#include <calc_internals.hh>

namespace SCalc {
  
  std::string Subgroup::pretty_print()
  {
    std::string str;
    str += "(";
    str += sub->pretty_print();
    str += ")";
    return str;
  }

  Expression * Subgroup::simplify()
  {
    Expression * s = sub->simplify();
    if(s->is_const())
      {
	double val = s->evaluate(NULL, NULL);
	delete s;
	return new Const(session(), val);
      }
    return new Subgroup(session(), s);
  }

};