int main(int argc, char **argv) { int arcount; ftab[0] = &long_list; arcount = 1; if (argc == 1) vanilla("."); else if (argv[1][0] != '-') vanilla(argv[1]); else { while (arcount <= argc - 1) { if (argv[1][1] == 'l' && argv[1][2] == '\0') { if (argv[arcount + 1] == '\0') (*(ftab[0]))("."); else (*(ftab[0]))(argv[arcount + 1]); } else my_printf("my_ls: invalid option -- '%c'\n", argv[1][1]); arcount = arcount + 1; } } return (0); }
int long_list(char *str) { DIR *dirp; struct dirent *entry; if ((dirp = opendir(str)) == NULL) { closedir(dirp); vanilla(str); return (0); } while (((entry = readdir(dirp)) != NULL)) displaying(entry); closedir(dirp); return (0); }
int main(int argc, char **argv) { vanilla(); return 0; }
void DiscretizedDoubleBarrierOption::checkBarrier(Array &optvalues, const Array &grid) const { Time now = time(); bool endTime = isOnTime(stoppingTimes_.back()); bool stoppingTime = false; switch (arguments_.exercise->type()) { case Exercise::American: if (now <= stoppingTimes_[1] && now >= stoppingTimes_[0]) stoppingTime = true; break; case Exercise::European: if (isOnTime(stoppingTimes_[0])) stoppingTime = true; break; case Exercise::Bermudan: for (Size i=0; i<stoppingTimes_.size(); i++) { if (isOnTime(stoppingTimes_[i])) { stoppingTime = true; break; } } break; default: QL_FAIL("invalid option type"); } for (Size j=0; j<optvalues.size(); j++) { switch (arguments_.barrierType) { case DoubleBarrier::KnockIn: if (grid[j] <= arguments_.barrier_lo) { // knocked in dn if (stoppingTime) { optvalues[j] = std::max(vanilla()[j], (*arguments_.payoff)(grid[j])); } else optvalues[j] = vanilla()[j]; } else if (grid[j] >= arguments_.barrier_hi) { // knocked in up if (stoppingTime) { optvalues[j] = std::max(vanilla()[j], (*arguments_.payoff)(grid[j])); } else optvalues[j] = vanilla()[j]; } else if (endTime) optvalues[j] = arguments_.rebate; break; case DoubleBarrier::KnockOut: if (grid[j] <= arguments_.barrier_lo) optvalues[j] = arguments_.rebate; // knocked out lo else if (grid[j] >= arguments_.barrier_hi) optvalues[j] = arguments_.rebate; // knocked out hi else if (stoppingTime) optvalues[j] = std::max(optvalues[j], (*arguments_.payoff)(grid[j])); break; case DoubleBarrier::KIKO: // low barrier is KI, high is KO if (grid[j] <= arguments_.barrier_lo) { // knocked in dn if (stoppingTime) { optvalues[j] = std::max(vanilla()[j], (*arguments_.payoff)(grid[j])); } else optvalues[j] = vanilla()[j]; } else if (grid[j] >= arguments_.barrier_hi) optvalues[j] = arguments_.rebate; // knocked out hi else if (endTime) optvalues[j] = arguments_.rebate; break; case DoubleBarrier::KOKI: // low barrier is KO, high is KI if (grid[j] <= arguments_.barrier_lo) optvalues[j] = arguments_.rebate; // knocked out lo else if (grid[j] >= arguments_.barrier_hi) { // knocked in up if (stoppingTime) { optvalues[j] = std::max(vanilla()[j], (*arguments_.payoff)(grid[j])); } else optvalues[j] = vanilla()[j]; } else if (endTime) optvalues[j] = arguments_.rebate; break; default: QL_FAIL("invalid barrier type"); } } }