code: function(symbol) { 
              var has_trig = symbol.hasTrig();
              // we get all the points where a possible zero might exist
              var points1 = get_points(symbol, 0.1);
              var points2 = get_points(symbol, 0.05);
              var points3 = get_points(symbol, 0.01);
              var points = core.Utils.arrayUnique(points1.concat(points2).concat(points3)),
                  l = points.length;
              //compile the function and the derivative of the function
              var f = build(symbol.clone()),
                  fp = build(_C.diff(symbol.clone()));
              for(var i=0; i<l; i++) {
                  var point = points[i];
                  add_to_result(Newton(point, f, fp), has_trig);
              }
              solutions.sort();
          }
docs: gets points around which to solve. It does that because it builds on the principle that if the sign changes over an interval then there must be a zero on that interval