{"size": 623, "ext": "js", "max_stars_repo_path": "js/evalf.js", "max_stars_repo_name": "wuyudi/eigenmath", "max_stars_repo_stars_event_min_datetime": "2019-09-29T03:15:58.000Z", "max_stars_repo_stars_event_max_datetime": "2022-03-24T00:57:51.000Z", "max_issues_repo_path": "js/evalf.js", "max_issues_repo_name": "wuyudi/eigenmath", "max_issues_repo_issues_event_min_datetime": "2019-11-12T00:57:03.000Z", "max_issues_repo_issues_event_max_datetime": "2022-03-26T23:46:46.000Z", "max_forks_repo_path": "js/evalf.js", "max_forks_repo_name": "wuyudi/eigenmath", "max_forks_repo_forks_event_min_datetime": "2019-10-03T13:23:17.000Z", "max_forks_repo_forks_event_max_datetime": "2022-01-03T13:28:00.000Z"}
{"max_stars_count": 26, "max_issues_count": 10, "max_forks_count": 9, "avg_line_length": 11.9807692308, "max_line_length": 43, "alphanum_fraction": 0.5890850722}
function
evalf()
{
	level++;

	if (level == 200)
		stopf("circular definition?");

	evalf_nib();

	level--;
}

function
evalf_nib()
{
	var p1;

	p1 = pop();

	if (iscons(p1) && iskeyword(car(p1))) {
		car(p1).func(p1);
		return;
	}

	if (iscons(p1) && isusersymbol(car(p1))) {
		eval_user_function(p1);
		return;
	}

	if (iskeyword(p1)) { // bare keyword
		push(p1);
		push_symbol(LAST); // default arg
		list(2);
		p1 = pop();
		car(p1).func(p1);
		return;
	}

	if (isusersymbol(p1)) {
		eval_user_symbol(p1);
		return;
	}

	if (istensor(p1)) {
		eval_tensor(p1);
		return;
	}

	push(p1); // rational, double, or string
}
