squaresLab, at Carnegie Mellon's School of Computer Science, focuses on Software QUAlity in Real Evolving Systems.* We do research in automated techniques to reason about, assure, measure and then improve the quality of real, messy, ever-changing software.
Our public projects can be found at squaresLab GitHub
squaresLab@CMU is led by (Associate) Professor Claire Le Goues, and also includes:
We also have graduated students:
Past visiting students include:
If you're not sure who to contact, squaresLab can be reached via email<EMAIL_ADDRESS>*We apologize, sort of, for the egregious backronym.
Here we loosely organize our research efforts loosely by subject. If you can't find something or think we've forgotten anything, make sure you also consult the publications list, and consider contacting us directly or filing an issue with this page at https://github.com/squaresLab/squaresLab.github.io.
The error repair process in software systems is, historically, a resource-consuming task that relies heavily on manual developer effort. Automatic program repair approaches enable the repair of software with minimum human interaction mitigating the burden on developers. We have created and analyzed existing automatic program repair approaches to improve their performance and quality of created patches; this work has produced frameworks and toolsets for automatic program transformation and repair, as well as datasets for its evaluation. You might be looking for:
Robotics and autonomous systems are becoming increasingly prevalent. These systems present new quality assurance challenges.
Related Publications {% bibliography --query @*[project~=robots] %}
Software developers work on difficult problems in complex software situations. Tools that reduce the complexity of software development can improve both the quality of the developed software and reduce the time required to create the software. To produce tools that are useful to developers, it is important to understand current software development practices. Our group studies developers and produced software to understand both the current state of software quality and which factors affect software quality. We then produce tools to advance the current state of software quality.
Related Publications: {% bibliography --query @*[project~=develop] %}
We are broadly interested in applying AI methods, including search-based approaches, to improve the engineering of software. In particular, we investigate applying these approaches to self-adaptive systems to enable complex software systems to autonomously respond to changes in their environments more effectively, although this category also includes smaller projects employing these approaches that don't fit neatly into other projects.
Related Publications: {% bibliography --query @*[project~=ai-sbe] %}
Note on citing:
By default, Bibtex will butcher Claire’s last name (turning her into Goues,
C.L.); we always appreciate judiciously applied brackets ({Le Goues}
) or a
non-breaking space (Le~Goues
). We have found that a combination of the two
({Le~Goues}
) seems to work best.
|
Model-Based Adaptation for Robotics Software, J. Aldrich, D. Garlan, C. Kaestner, C. Le Goues, A. Mohseni-Kabir, I. Ruchkin, S. Samuel, B. Schmerl, C. S. Timperley, M. Veloso, I. Voysey, J. Biswas, A. Guha, J. Holtz, J. Camara, and P. Jamshidi, IEEE Software, vol. 36, no. 2, pp. 83–90, Mar. 2019.
DOI
·
BibTeX
@article{MARS2019, author = {{Aldrich}, J. and {Garlan}, D. and {Kaestner}, C. and {Le~Goues}, C. and {Mohseni-Kabir}, A. and {Ruchkin}, I. and {Samuel}, S. and {Schmerl}, B. and {Timperley}, C. S. and {Veloso}, M. and {Voysey}, I. and {Biswas}, J. and {Guha}, A. and {Holtz}, J. and {Camara}, J. and {Jamshidi}, P.}, journal = {IEEE Software}, title = {Model-Based Adaptation for Robotics Software}, year = {2019}, volume = {36}, number = {2}, pages = {83-90}, doi = {10.1109/MS.2018.2885058}, month = mar, month_numeric = {3} } |
|
DARTSim: An Exemplar for Evaluation and Comparison of Self-Adaptation Approaches for Smart Cyber-Physical Systems, Gabriel A. Moreno, Cody Kinneer, Ashutosh Pandey, and David Garlan, in Proceedings of the 14th International Conference on Software Engineering for Adaptive and Self-Managing Systems, To Appear SEAMS ’19, 2019.
PDF
·
BibTeX
@inproceedings{MorenoDART2019, author = {Moreno, Gabriel A. and Kinneer, Cody and Pandey, Ashutosh and Garlan, David}, title = {DARTSim: An Exemplar for Evaluation and Comparison of Self-Adaptation Approaches for Smart Cyber-Physical Systems}, booktitle = {Proceedings of the 14th International Conference on Software Engineering for Adaptive and Self-Managing Systems}, series = {To Appear SEAMS '19}, year = {2019}, location = {Montreal, Canada}, numpages = {7}, publisher = {IEEE}, project = {ai-sbe} } |
|
Leveraging Program Invariants to Promote Population Diversity in Search-Based Automatic Program Repair, Zhen Yu Ding, Yiwei Lyu, Christopher S. Timperley, and Claire Le Goues, in Genetic Improvement Workshop, To Appear GI ’19, 2019.
PDF
·
BibTeX
@inproceedings{DingLyuGI2019, author = {Ding, {Zhen~Yu} and Lyu, Yiwei and Timperley, Christopher S. and {Le~Goues}, Claire}, title = {Leveraging Program Invariants to Promote Population Diversity in Search-Based Automatic Program Repair}, booktitle = {Genetic Improvement Workshop}, series = {To Appear GI '19}, year = {2019}, project = {repair} } |
|
A Novel Fitness Function for Automated Program Repair Based on
Source Code Checkpoints, Eduardo Faria de Souza, Claire Le Goues, and Celso Goncalves Camilo-Junior, in Proceedings of the Genetic and Evolutionary Computation
Conference, GECCO ’18, 2018, pp. 1443–1450.
PDF
·
BibTeX
@inproceedings{deSouzaFitness2018, author = {{de~Souza}, Eduardo Faria and {Le~Goues}, Claire and Camilo-Junior, Celso Goncalves}, title = {A Novel Fitness Function for Automated Program Repair Based on Source Code Checkpoints}, year = {2018}, publisher = {ACM}, booktitle = {Proceedings of the Genetic and Evolutionary Computation Conference}, series = {GECCO '18}, location = {Kyoto, Japan}, month = jul, pages = {1443--1450}, project = {repair}, month_numeric = {7} } |
|
Effectiveness of Anonymization in Double-Blind Review, Claire Le Goues, Yuriy Brun, Sven Apel, Emery Berger, Sarfraz Khurshid, and Yannis Smaragdakis, Commun. ACM, vol. 61, no. 6, pp. 30–33, Jun. 2018.
PDF
·
DOI
·
BibTeX
@article{LeGouesDoubleBlind2018, author = {{Le~Goues}, Claire and Brun, Yuriy and Apel, Sven and Berger, Emery and Khurshid, Sarfraz and Smaragdakis, Yannis}, title = {Effectiveness of Anonymization in Double-Blind Review}, journal = {Commun. ACM}, year = {2018}, month = jun, volume = {61}, number = {6}, pages = {30--33}, doi = {10.1145/3208157}, month_numeric = {6} } |
|
Static Automated Program Repair for Heap Properties, Rijnard van Tonder and Claire Le Goues, in International Conference on Software Engineering, ICSE ’18, 2018, pp. 151–162.
PDF
·
Slides (PDF)
·
Code
·
DOI
·
BibTeX
@inproceedings{vanTonderHeapProperties2018, title = {Static Automated Program Repair for Heap Properties}, author = {{van~Tonder}, Rijnard and {Le~Goues}, Claire}, booktitle = {International Conference on Software Engineering}, series = {ICSE '18}, pages = {151--162}, month = may, year = {2018}, publisher = {ACM}, location = {Gothenburg, Sweden}, doi = {10.1145/3180155.3180250}, project = {repair}, month_numeric = {5} } |
|
Robustness Testing of Autonomy Software, Casidhe Hutchison, Milda Zizyte, Patrick E. Lanigan, David Guttendorf, Michael Wagner, Claire Le Goues, and Philip Koopman, in International Conference on Software Engineering: Software
Engineering in Practice, ICSE SEIP ’18, 2018, pp. 276–285.
PDF
·
DOI
·
BibTeX
@inproceedings{HutchisonRobustness2018, title = {Robustness Testing of Autonomy Software}, author = {Hutchison, Casidhe and Zizyte, Milda and Lanigan, Patrick E. and Guttendorf, David and Wagner, Michael and {Le~Goues}, Claire and Koopman, Philip}, booktitle = {International Conference on Software Engineering: Software Engineering in Practice}, series = {ICSE SEIP '18}, year = {2018}, month = may, location = {Gothenburg, Sweden}, pages = {276--285}, doi = {10.1145/3183519.3183534}, publisher = {ACM}, project = {robots}, month_numeric = {5} } |
|
Poster: BugZoo: A Platform for Studying Software Bugs, Christopher Steven Timperley, Susan Stepney, and Claire Le Goues, in International Conference on Software Engineering: Companion
Proceedings, ICSE Poster ’18, 2018, pp. 446–447.
PDF
·
Poster
·
DOI
·
BibTeX
@inproceedings{TimperleyBugZooPoster2018, title = {Poster: BugZoo: A Platform for Studying Software Bugs}, author = {Timperley, Christopher Steven and Stepney, Susan and {Le~Goues}, Claire}, booktitle = {International Conference on Software Engineering: Companion Proceedings}, series = {ICSE Poster '18}, pages = {446--447}, doi = {10.1145/3183440.3195050}, publisher = {ACM}, month = may, year = {2018}, location = {Gothenburg, Sweden}, month_numeric = {5} } |
|
Common Statement Kind Changes to Inform Automatic Program
Repair, Mauricio Soto and Claire Le Goues, in International Conference on Mining Software Repositories, MSR Challenge ’18, 2018.
PDF
·
Code
·
DOI
·
BibTeX
@inproceedings{SotoMSRChallenge2018, title = {Common Statement Kind Changes to Inform Automatic Program Repair}, author = {Soto, Mauricio and {Le~Goues}, Claire}, booktitle = {International Conference on Mining Software Repositories}, series = {MSR Challenge '18}, doi = {10.1145/3196398.3196472}, month = may, year = {2018}, location = {Gothenburg, Sweden}, project = {repair}, month_numeric = {5} } |
|
A Study on the Use of IDE Features for Debugging, Afsoon Afzal and Claire Le Goues, in International Conference on Mining Software Repositories, MSR Challenge ’18, 2018.
PDF
·
DOI
·
BibTeX
@inproceedings{AfzalMSRChallenge2018, title = {A Study on the Use of IDE Features for Debugging}, author = {Afzal, Afsoon and {Le~Goues}, Claire}, booktitle = {International Conference on Mining Software Repositories}, series = {MSR Challenge '18}, doi = {10.1145/3196398.3196468}, month = may, year = {2018}, location = {Gothenburg, Sweden}, project = {develop}, month_numeric = {5} } |
|
Overfitting in Semantics-Based Automated Program Repair, Xuan-Bach D. Le, Ferdian Thung, David Lo, and Claire Le Goues, in International Conference on Software Engineering, ICSE (Journal First) ’18, 2018, p. 163.
PDF
·
DOI
·
BibTeX
@inproceedings{XuanBachOverfittingJF2018, title = {Overfitting in Semantics-Based Automated Program Repair}, author = {Le, Xuan-Bach D. and Thung, Ferdian and Lo, David and {Le~Goues}, Claire}, booktitle = {International Conference on Software Engineering}, series = {ICSE (Journal First) '18}, pages = {163}, publisher = {ACM}, doi = {10.1145/3180155.3182536}, year = {2018}, month = may, location = {Gothenburg, Sweden}, project = {repair}, month_numeric = {5} } |
|
Crashing Simulated Planes is Cheap: Can Simulation Detect
Robotics Bugs Early?, Christopher Steven Timperley, Afsoon Afzal, Deborah Katz, Jam Marcos Hernandez, and Claire Le Goues, in International Conference on Software Testing, Validation and
Verification, ICST ’18, 2018, pp. 331–342.
PDF
·
Data
·
DOI
·
BibTeX
@inproceedings{TimperleyCrashing2018, title = {Crashing Simulated Planes is Cheap: {C}an Simulation Detect Robotics Bugs Early?}, author = {Timperley, Christopher Steven and Afzal, Afsoon and Katz, Deborah and Hernandez, Jam Marcos and {Le~Goues}, Claire}, booktitle = {International Conference on Software Testing, Validation and Verification}, series = {ICST '18}, pages = {331--342}, location = {V{\"{a}}ster{\aa}s, Sweden}, doi = {10.1109/ICST.2018.00040}, year = {2018}, month = apr, project = {robots}, month_numeric = {4} } |
|
Overfitting in Semantics-based Automated Program Repair, Xuan-Bach D. Le, Ferdian Thung, David Lo, and Claire Le Goues, Empirical Software Engineering, Mar. 2018.
PDF
·
DOI
·
BibTeX
@article{XuanBachOverfitting2018, title = {Overfitting in Semantics-based Automated Program Repair}, author = {Le, Xuan-Bach D. and Thung, Ferdian and Lo, David and {Le~Goues}, Claire}, journal = {Empirical Software Engineering}, year = {2018}, month = mar, doi = {10.1007/s10664-017-9577-2}, project = {repair}, month_numeric = {3} } |
|
Using a Probabilistic Model to Predict Bug Fixes, Mauricio Soto and Claire Le Goues, in International Conference on Software Analysis, Evolution, and
Reengineering, SANER ’18, 2018, pp. 221–231.
PDF
·
Code
·
DOI
·
BibTeX
@inproceedings{SotoProbabilistic2018, title = {Using a Probabilistic Model to Predict Bug Fixes}, author = {Soto, Mauricio and {Le~Goues}, Claire}, booktitle = {International Conference on Software Analysis, Evolution, and Reengineering}, series = {SANER '18}, month = mar, year = {2018}, location = {Campobasso, Italy}, pages = {221--231}, doi = {10.1109/SANER.2018.8330211}, project = {repair}, month_numeric = {3} } |
|
Statistical Machine Translation is a Natural Fit for
Identifier Renaming in Software Source Code, Jeremy Lacomis, Alan Jaffe, Edward J. Schwartz, Claire Le Goues, and Bogdan Vasilescu, in Statistical Modeling of Natural Software Corpora, 2018 AAAI
Workshop, 2018, pp. 771–774.
PDF
·
BibTeX
@inproceedings{LacomisSMTRenaming2018, author = {Lacomis, Jeremy and Jaffe, Alan and Schwartz, Edward J. and {Le~Goues}, Claire and Vasilescu, Bogdan}, title = {Statistical Machine Translation is a Natural Fit for Identifier Renaming in Software Source Code}, booktitle = {Statistical Modeling of Natural Software Corpora, 2018 {AAAI} Workshop}, year = {2018}, month = feb, pages = {771--774}, month_numeric = {2} } |
|
Improved Representation and Genetic Operators for Linear
Genetic Programming for Automated Program Repair, Vinicius Paulo L. Oliveira, Eduardo F. Souza, Claire Le Goues, and Celso G. Camilo-Junior, Empirical Software Engineering, Jan. 2018.
PDF
·
DOI
·
BibTeX
@article{OliveiraRepresentation2018, title = {Improved Representation and Genetic Operators for Linear Genetic Programming for Automated Program Repair}, author = {Oliveira, Vinicius Paulo L. and Souza, Eduardo F. and {Le~Goues}, Claire and Camilo-Junior, Celso G.}, journal = {Empirical Software Engineering}, month = jan, year = {2018}, doi = {10.1007/s10664-017-9562-9}, project = {repair}, month_numeric = {1} } |
|
Evaluating CoBlox: A Comparative Study of Robotics Programming Environments
for Adult Novices, David Weintrop, Afsoon Afzal, Jean Salac, Patrick Francis, Boyang Li, David C. Shepherd, and Diana Franklin, in Conference on Human Factors in Computing Systems, CHI ’18, 2018, p. 366.
PDF
·
DOI
·
BibTeX
@inproceedings{WeintropCoBlox2018, title = {Evaluating CoBlox: A Comparative Study of Robotics Programming Environments for Adult Novices}, author = {Weintrop, David and Afzal, Afsoon and Salac, Jean and Francis, Patrick and Li, Boyang and Shepherd, David C. and Franklin, Diana}, booktitle = {Conference on Human Factors in Computing Systems}, pages = {366}, year = {2018}, series = {CHI '18}, doi = {10.1145/3173574.3173940}, location = {Montreal, Canada}, project = {robots} } |
|
Dissimilarity Measures for Clustering Space Mission Architectures, Cody Kinneer and Sebastian J. I. Herzig, in Proceedings of the 21th ACM/IEEE International Conference on Model
Driven Engineering Languages and Systems, MODELS 2018, Copenhagen,
Denmark, October 14-19, 2018, 2018, pp. 392–402.
PDF
·
Slides (PDF)
·
DOI
·
BibTeX
@inproceedings{KinneerDissimilarity2018, author = {Kinneer, Cody and Herzig, Sebastian J. I.}, title = {Dissimilarity Measures for Clustering Space Mission Architectures}, booktitle = {Proceedings of the 21th {ACM/IEEE} International Conference on Model Driven Engineering Languages and Systems, {MODELS} 2018, Copenhagen, Denmark, October 14-19, 2018}, pages = {392--402}, year = {2018}, crossref = {DBLP:conf/models/2018}, url = {http://doi.acm.org/10.1145/3239372.3239390}, doi = {10.1145/3239372.3239390}, timestamp = {Tue, 16 Oct 2018 10:17:16 +0200}, biburl = {https://dblp.org/rec/bib/conf/models/KinneerH18}, bibsource = {dblp computer science bibliography, https://dblp.org}, project = {ai-sbe} } |
|
Semantic Crash Bucketing, Rijnard van Tonder, John Kotheimer, and Claire Le Goues, in International Conference on Automated Software Engineering, ASE ’18, 2018.
PDF
·
Slides (PDF)
·
Code
·
DOI
·
BibTeX
@inproceedings{vanTonderSCB2018, author = {{van~Tonder}, Rijnard and Kotheimer, John and {Le~Goues}, Claire}, title = {Semantic Crash Bucketing}, booktitle = {International Conference on Automated Software Engineering}, series = {ASE '18}, year = {2018}, doi = {10.1145/3238147.3238200} } |
|
Meaningful Variable Names for Decompiled Code: A Machine
Translation Approach, Alan Jaffe, Jeremy Lacomis, Edward J. Schwartz, Claire Le Goues, and Bogdan Vasilescu, in International Conference on Program Comprehension, ICPC ’18, 2018, pp. 20–30.
PDF
·
BibTeX
@inproceedings{JaffeDecompilerNames2018, author = {Jaffe, Alan and Lacomis, Jeremy and Schwartz, Edward J. and {Le~Goues}, Claire and Vasilescu, Bogdan}, title = {Meaningful Variable Names for Decompiled Code: {A} Machine Translation Approach}, booktitle = {International Conference on Program Comprehension}, year = {2018}, series = {ICPC '18}, pages = {20--30} } |
|
A Turing Test for Genetic Improvement, Afsoon Afzal, Jeremy Lacomis, Claire Le Goues, and Christopher S. Timperley, in Genetic Improvement Workshop, GI ’18, 2018, pp. 17–18.
PDF
·
BibTeX
@inproceedings{AfzalTuringTest2018, author = {Afzal, Afsoon and Lacomis, Jeremy and {Le~Goues}, Claire and Timperley, Christopher S.}, title = {A Turing Test for Genetic Improvement}, booktitle = {Genetic Improvement Workshop}, year = {2018}, series = {GI '18}, pages = {17--18} } |
|
Managing Uncertainty in Self-Adaptive Systems with Plan Reuse
and Stochastic Search, Cody Kinneer, Zack Coker, Jiacheng Wang, David Garlan, and Claire Le Goues, in Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’18, 2018, pp. 40–50.
PDF
·
Slides (PDF)
·
Code
·
DOI
·
BibTeX
@inproceedings{KinneerManaging2018, author = {Kinneer, Cody and Coker, Zack and Wang, Jiacheng and Garlan, David and {Le~Goues}, Claire}, title = {Managing Uncertainty in Self-Adaptive Systems with Plan Reuse and Stochastic Search}, booktitle = {Software Engineering for Adaptive and Self-Managing Systems}, series = {SEAMS '18}, year = {2018}, pages = {40--50}, doi = {10.1145/3194133.3194145}, project = {ai-sbe} } |
|
Cross-Architecture Lifter Synthesis, Rijnard van Tonder and Claire Le Goues, in International Conference on Software Engineering and Formal
Methods, SEFM ’18, 2018, vol. 10886, pp. 155–170.
PDF
·
Slides (PDF)
·
Code
·
DOI
·
BibTeX
@inproceedings{vanTonderLifterSynthesis2018, author = {{van~Tonder}, Rijnard and {Le~Goues}, Claire}, title = {Cross-Architecture Lifter Synthesis}, booktitle = {International Conference on Software Engineering and Formal Methods}, year = {2018}, pages = {155--170}, location = {Toulouse, France}, publisher = {Springer}, doi = {10.1007/978-3-319-92970-5_10}, series = {SEFM '18}, volume = {10886} } |
|
Genetic Improvement of Software (Dagstuhl Seminar 18052), Justyna Petke, Claire Le Goues, Stephanie Forrest, and William B. Langdon, Dagstuhl Reports, vol. 8, no. 1, pp. 158–182, 2018.
PDF
·
DOI
·
BibTeX
@article{DagstuhlGI2018, author = {Petke, Justyna and {Le~Goues}, Claire and Forrest, Stephanie and Langdon, William B.}, title = {Genetic Improvement of Software (Dagstuhl Seminar 18052)}, pages = {158--182}, journal = {Dagstuhl Reports}, issn = {2192-5283}, year = {2018}, volume = {8}, number = {1}, editor = {Petke, Justyna and {Le~Goues}, Claire and Forrest, Stephanie and Langdon, William B.}, publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik}, address = {Dagstuhl, Germany}, doi = {10.4230/DagRep.8.1.158}, project = {repair} } |
|
Using Recurrent Neural Networks for Decompilation, Deborah S. Katz, Jason Ruchti, and Eric Schulte, in Software Analysis, Evolution, and Reengineering, SANER ’18, 2018, pp. 346–356.
PDF
·
Slides (PDF)
·
DOI
·
BibTeX
@inproceedings{KatzRNN2018, author = {Katz, Deborah S. and Ruchti, Jason and Schulte, Eric}, title = {Using Recurrent Neural Networks for Decompilation}, booktitle = {Software Analysis, Evolution, and Reengineering}, year = {2018}, series = {SANER '18}, pages = {346--356}, location = {Campobasso, Italy}, doi = {10.1109/SANER.2018.8330222} } |
|
An Investigation into the Use of Mutation Analysis for
Automated Program Repair, Christopher Steven Timperley, Susan Stepney, and Claire Le Goues, in International Symposium on Search Based Software Engineering, SSBSE ’17, 2017, vol. 10452, pp. 99–114.
PDF
·
DOI
·
BibTeX
@inproceedings{TimperleyMBFL2017, author = {Timperley, Christopher Steven and Stepney, Susan and {Le~Goues}, Claire}, title = {An Investigation into the Use of Mutation Analysis for Automated Program Repair}, booktitle = {International Symposium on Search Based Software Engineering}, pages = {99--114}, doi = {10.1007/978-3-319-66299-2_7}, month = sep, year = {2017}, location = {Paderborn, Germany}, series = {SSBSE '17}, volume = {10452}, publisher = {Springer}, project = {repair}, month_numeric = {9} } |
|
S3: Syntax- and Semantic-Guided Repair Synthesis via
Programming by Examples, Xuan-Bach D. Le, Duc Hiep Chu, David Lo, Claire Le Goues, and Willem Visser, in Joint Meeting of the European Software Engineering Conference
and the Symposium on the Foundations of Software Engineering, ESEC/FSE ’17, 2017, pp. 593–604.
PDF
·
DOI
·
BibTeX
@inproceedings{XuanBachS32017, author = {Le, Xuan-Bach D. and Chu, Duc Hiep and Lo, David and {Le~Goues}, Claire and Visser, Willem}, title = {S3: Syntax- and Semantic-Guided Repair Synthesis via Programming by Examples}, booktitle = {Joint Meeting of the European Software Engineering Conference and the Symposium on the Foundations of Software Engineering}, series = {ESEC/FSE '17}, doi = {10.1145/3106237.3106309}, location = {Paderborn, Germany}, publisher = {{ACM}}, pages = {593--604}, year = {2017}, month = sep, project = {repair}, month_numeric = {9} } |
|
JFIX: Semantics-Based Repair of Java programs via Symbolic
PathFinder, Xuan-Bach D. Le, Duc Hiep Chu, David Lo, Claire Le Goues, and Willem Visser, in International Symposium on Software Testing and Analysis, ISSTA TOOLS ’17, 2017, pp. 376–379.
PDF
·
DOI
·
BibTeX
@inproceedings{XuanBachJFIX2017, author = {Le, Xuan-Bach D. and Chu, Duc Hiep and Lo, David and {Le~Goues}, Claire and Visser, Willem}, title = {{JFIX}: {S}emantics-Based Repair of {J}ava programs via Symbolic Path{F}inder}, booktitle = {International Symposium on Software Testing and Analysis}, series = {ISSTA TOOLS '17}, pages = {376--379}, location = {Santa Barbara, CA, USA}, doi = {10.1145/3092703.3098225}, month = jul, year = {2017}, publisher = {ACM}, project = {repair}, month_numeric = {7} } |
|
Toward Semantic Foundations for Program Editors, Cyrus Omar, Ian Voysey, Michael Hilton, Joshua Sunshine, Claire Le Goues, Jonathan Aldrich, and Matthew Hammer, in Summit on Advances in Programming Languages, SNAPL ’17, 2017, pp. 11:1–11:12.
PDF
·
DOI
·
BibTeX
@inproceedings{OmarSemantic2017, author = {Omar, Cyrus and Voysey, Ian and Hilton, Michael and Sunshine, Joshua and {Le~Goues}, Claire and Aldrich, Jonathan and Hammer, Matthew}, title = {Toward Semantic Foundations for Program Editors}, booktitle = {Summit on Advances in Programming Languages}, series = {SNAPL '17}, doi = {10.4230/LIPIcs.SNAPL.2017.11}, pages = {11:1--11:12}, month = may, year = {2017}, location = {Asilomar, CA, USA}, publisher = {Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik}, month_numeric = {5} } |
|
Analyzing the Impact of Social Attributes on Commit
Integration Success, Mauricio Soto, Zack Coker, and Claire Le Goues, in International Conference on Mining Software Repositories, MSR Challenge ’17, 2017, pp. 483–486.
PDF
·
Code
·
Data
·
Results
·
DOI
·
BibTeX
@inproceedings{SotoMSRChallenge2017, author = {Soto, Mauricio and Coker, Zack and {Le~Goues}, Claire}, title = {Analyzing the Impact of Social Attributes on Commit Integration Success}, booktitle = {International Conference on Mining Software Repositories}, series = {MSR Challenge ’17}, year = {2017}, pages = {483--486}, doi = {10.1109/MSR.2017.34}, project = {develop} } |
|
Behavior Metrics for Prioritizing Investigations of
Exceptions, Zack Coker, Kostadin Damevski, Claire Le Goues, Nicholas A. Kraft, David Shepherd, and Lori Pollock, in International Conference on Software Maintenance and
Evolution, ICSME ’17, 2017, pp. 554–563.
PDF
·
Slides (PowerPoint)
·
DOI
·
BibTeX
@inproceedings{CokerBehavior2017, author = {Coker, Zack and Damevski, Kostadin and {Le~Goues}, Claire and Kraft, Nicholas A. and Shepherd, David and Pollock, Lori}, title = {Behavior Metrics for Prioritizing Investigations of Exceptions}, booktitle = {International Conference on Software Maintenance and Evolution}, series = {ICSME '17}, year = {2017}, pages = {554--563}, doi = {10.1109/ICSME.2017.62}, project = {develop} } |
|
Guest Editorial for Special Section on Research in
Search-Based Software Engineering, Claire Le Goues and Shin Yoo, Empirical Software Engineering, vol. 22, no. 2, pp. 849–851, 2017.
PDF
·
DOI
·
BibTeX
@article{LeGouesGuest2017, author = {{Le~Goues}, Claire and Yoo, Shin}, title = {Guest Editorial for Special Section on Research in Search-Based Software Engineering}, journal = {Empirical Software Engineering}, volume = {22}, number = {2}, pages = {849--851}, year = {2017}, doi = {10.1007/s10664-017-9504-6} } |
|
Clarifications on the Construction and Use of the ManyBugs
Benchmark (Comment Paper), Claire Le Goues, Yuriy Brun, Stephanie Forrest, and Westley Weimer, IEEE Transactions on Software Engineering, vol. 43, no. 11, pp. 1089–1090, 2017.
PDF
·
DOI
·
BibTeX
@article{LeGouesClarifications2017, author = {{Le~Goues}, Claire and Brun, Yuriy and Forrest, Stephanie and Weimer, Westley}, journal = {{IEEE} Transactions on Software Engineering}, title = {Clarifications on the Construction and Use of the {M}any{B}ugs Benchmark (Comment Paper)}, volume = {43}, number = {11}, pages = {1089--1090}, year = {2017}, doi = {10.1109/TSE.2017.2755651}, project = {repair} } |
|
Automated Program Repair (Dagstuhl Seminar 17022), Sunghun Kim, Claire Le Goues, Michael Pradel, and Abhik Roychoudhury, Dagstuhl Reports, vol. 7, no. 1, pp. 19–31, 2017.
PDF
·
DOI
·
BibTeX
@article{DagstuhlAPR2017, author = {Kim, Sunghun and {Le~Goues}, Claire and Pradel, Michael and Roychoudhury, Abhik}, title = {{Automated Program Repair (Dagstuhl Seminar 17022)}}, pages = {19--31}, journal = {Dagstuhl Reports}, issn = {2192-5283}, year = {2017}, volume = {7}, number = {1}, editor = {Kim, Sunghun and {Le~Goues}, Claire and Pradel, Michael and Roychoudhury, Abhik}, publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik}, address = {Dagstuhl, Germany}, doi = {10.4230/DagRep.7.1.19}, project = {repair} } |
|
Understanding Intended Behavior using Models of Low-Level Signals, Deborah S. Katz, in International Symposium on Software Testing and Analysis, ISSTA-DS ’17, 2017, pp. 424–427.
PDF
·
DOI
·
BibTeX
@inproceedings{KatzUnderstanding2017, author = {Katz, Deborah S.}, title = {Understanding Intended Behavior using Models of Low-Level Signals}, booktitle = {International Symposium on Software Testing and Analysis}, series = {ISSTA-DS '17}, year = {2017}, pages = {424--427}, project = {robots}, doi = {10.1145/3092703.3098237} } |
|
Improved Crossover Operators for Genetic Programming for
Program Repair, Vinicius Paulo L. Oliveira, Eduardo F. D. Souza, Claire Le Goues, and Celso G. Camilo-Junior, in International Symposium on Search Based Software Engineering, Lecture Notes in Computer Science, 2016, vol. 9962, pp. 112–127.
PDF
·
DOI
·
BibTeX
@inproceedings{OliveiraCrossover2016, author = {Oliveira, Vinicius Paulo L. and Souza, Eduardo F. D. and {Le~Goues}, Claire and Camilo{-}Junior, Celso G.}, title = {Improved Crossover Operators for Genetic Programming for Program Repair}, booktitle = {International Symposium on Search Based Software Engineering}, series = {Lecture Notes in Computer Science}, month = oct, doi = {10.1007/978-3-319-47106-8_8}, pages = {112--127}, year = {2016}, location = {Raleigh, NC, USA}, volume = {9962}, project = {repair}, month_numeric = {10} } |
|
Enhancing Automated Program Repair with Deductive
Verification, Xuan-Bach D. Le, Quang Loc Le, David Lo, and Claire Le Goues, in International Conference on Software Maintenance and Evolution, ICSME ERA ’16, 2016, pp. 428–432.
PDF
·
DOI
·
BibTeX
@inproceedings{XuanBachDeductive2016, author = {Le, Xuan-Bach D. and Le, Quang Loc and Lo, David and {Le~Goues}, Claire}, title = {Enhancing Automated Program Repair with Deductive Verification}, booktitle = {International Conference on Software Maintenance and Evolution}, series = {ICSME ERA '16}, doi = {10.1109/ICSME.2016.66}, pages = {428--432}, month = oct, year = {2016}, location = {Raleigh, NC, USA}, publisher = {{IEEE} Computer Society}, project = {repair}, month_numeric = {10} } |
|
Empirical Study on Synthesis Engines for Semantics-based
Program Repair, Xuan-Bach D. Le, David Lo, and Claire Le Goues, in International Conference on Software Maintenance and
Evolution, ICSME ERA ’16, 2016, pp. 423–427.
PDF
·
DOI
·
BibTeX
@inproceedings{XuanBachSynthesisEngines2016, author = {Le, Xuan-Bach D. and Lo, David and {Le Goues}, Claire}, title = {Empirical Study on Synthesis Engines for Semantics-based Program Repair}, booktitle = {International Conference on Software Maintenance and Evolution}, series = {ICSME ERA '16}, doi = {10.1109/ICSME.2016.68}, pages = {423--427}, month = oct, year = {2016}, location = {Raleigh, NC, USA}, publisher = {{IEEE} Computer Society}, project = {repair}, month_numeric = {10} } |
|
A Learning-to-Rank Based Fault Localization Approach using
Likely Invariants, Tien-Duy B. Le, David Lo, Claire Le Goues, and Lars Grunske, in International Symposium on Software Testing and Analysis, ISSTA ’16, 2016, pp. 177–188.
PDF
·
DOI
·
BibTeX
@inproceedings{LeLikelyInvariants2016, author = {B. Le, Tien-Duy and Lo, David and {Le~Goues}, Claire and Grunske, Lars}, title = {A Learning-to-Rank Based Fault Localization Approach using Likely Invariants}, booktitle = {International Symposium on Software Testing and Analysis}, series = {ISSTA '16}, publisher = {ACM}, month = jul, year = {2016}, location = {Saarbr{\"{u}}cken, Germany}, pages = {177--188}, numpages = {12}, doi = {10.1145/2931037.2931049}, month_numeric = {7} } |
|
Trusted Software Repair for System Resiliency, Westley Weimer, Stephanie Forrest, Miryung Kim, Claire Le Goues, and Patrick Hurley, in International Conference on Dependable Systems and Networks
Workshops, DSN Workshops ’16, 2016, pp. 238–241.
PDF
·
DOI
·
BibTeX
@inproceedings{WeimerTrustedRepair2016, author = {Weimer, Westley and Forrest, Stephanie and Kim, Miryung and {Le~Goues}, Claire and Hurley, Patrick}, title = {Trusted Software Repair for System Resiliency}, booktitle = {International Conference on Dependable Systems and Networks Workshops}, series = {DSN Workshops '16}, pages = {238--241}, month = jul, year = {2016}, location = {Toulouse, France}, publisher = {{IEEE} Computer Society}, doi = {10.1109/DSN-W.2016.64}, month_numeric = {7} } |
|
Learning to Rank for Bug Report Assignee Recommendation, Yuan Tian, Dinusha Wijedasa, David Lo, and Claire Le Goues, in International Conference on Program Comprehension, ICPC ’16, 2016, pp. 1–10.
PDF
·
DOI
·
BibTeX
@inproceedings{TianRecommendation2016, author = {Tian, Yuan and Wijedasa, Dinusha and Lo, David and {Le~Goues}, Claire}, booktitle = {International Conference on Program Comprehension}, series = {ICPC '16}, title = {Learning to Rank for Bug Report Assignee Recommendation}, month = may, year = {2016}, location = {Austin, TX, USA}, publisher = {{IEEE} Computer Society}, pages = {1--10}, doi = {10.1109/ICPC.2016.7503715}, project = {develop}, month_numeric = {5} } |
|
Defending Against the Attack of the Micro-Clones, Rijnard van Tonder and Claire Le Goues, in International Conference on Program Comprehension, ICPC Short ’16, 2016, pp. 1–4.
PDF
·
DOI
·
BibTeX
@inproceedings{vanTonderMicroClones2016, author = {{van~Tonder}, Rijnard and {Le~Goues}, Claire}, booktitle = {International Conference on Program Comprehension}, series = {ICPC Short '16}, title = {Defending Against the Attack of the Micro-Clones}, month = may, year = {2016}, location = {Austin, TX, USA}, pages = {1--4}, publisher = {{IEEE} Computer Society}, doi = {10.1109/ICPC.2016.7503736}, month_numeric = {5} } |
|
Examining Programmer Practices for Locally Handling
Exceptions, Mary Beth Kery, Claire Le Goues, and Brad A. Myers, in International Conference on Mining Software Repositories, MSR Challenge ’16, 2016, pp. 484–487.
PDF
·
DOI
·
BibTeX
@inproceedings{KerryExceptions2016, author = {Kery, Mary Beth and {Le~Goues}, Claire and Myers, Brad A.}, title = {Examining Programmer Practices for Locally Handling Exceptions}, booktitle = {International Conference on Mining Software Repositories}, series = {MSR Challenge '16}, month = may, year = {2016}, pages = {484--487}, numpages = {4}, doi = {10.1145/2901739.2903497}, location = {Austin, TX, USA}, publisher = {{ACM}}, project = {develop}, month_numeric = {5} } |
|
A Deeper Look into Bug Fixes: Patterns, Replacements,
Deletions, and Additions, Mauricio Soto, Ferdian Thung, Chu-Pan Wong, Claire Le Goues, and David Lo, in International Conference on Mining Software Repositories, MSR Challenge ’16, 2016, pp. 512–515.
PDF
·
DOI
·
BibTeX
@inproceedings{SotoMSRChallenge2016, author = {Soto, Mauricio and Thung, Ferdian and Wong, Chu-Pan and {Le~Goues}, Claire and Lo, David}, title = {A Deeper Look into Bug Fixes: {P}atterns, Replacements, Deletions, and Additions}, booktitle = {International Conference on Mining Software Repositories}, series = {MSR Challenge '16}, month = may, year = {2016}, pages = {512--515}, numpages = {4}, doi = {10.1145/2901739.2903495}, location = {Austin, TX, USA}, publisher = {{ACM}}, project = {repair}, month_numeric = {5} } |
|
History Driven Program Repair, Xuan-Bach D. Le, David Lo, and Claire Le Goues, in International Conference on Software Analysis, Evolution, and
Reengineering, SANER ’16, 2016, vol. 1, pp. 213–224.
PDF
·
DOI
·
BibTeX
@inproceedings{XuanBachHistory2016, author = {Le, Xuan-Bach D. and Lo, David and {Le~Goues}, Claire}, booktitle = {International Conference on Software Analysis, Evolution, and Reengineering}, title = {History Driven Program Repair}, series = {SANER '16}, year = {2016}, volume = {1}, pages = {213-224}, doi = {10.1109/SANER.2016.76}, location = {Osaka, Japan}, month = mar, publisher = {{IEEE} Computer Society}, project = {repair}, month_numeric = {3} } |
|
The ManyBugs and IntroClass Benchmarks for Automated
Repair of C Programs, Claire Le Goues, Neal Holtschulte, Edward K. Smith, Yuriy Brun, Premkumar Devanbu, Stephanie Forrest, and Westley Weimer, IEEE Transactions on Software Engineering, vol. 41, no. 12, pp. 1236–1256, Dec. 2015.
PDF
·
Code
·
DOI
·
BibTeX
@article{LeGouesManyBugs2015, author = {{Le~Goues}, Claire and Holtschulte, Neal and Smith, Edward K. and Brun, Yuriy and Devanbu, Premkumar and Forrest, Stephanie and Weimer, Westley}, title = {The {ManyBugs} and {IntroClass} Benchmarks for Automated Repair of {C} Programs}, journal = {{IEEE} Transactions on Software Engineering}, year = {2015}, volume = {41}, number = {12}, pages = {1236--1256}, month = dec, doi = {10.1109/TSE.2015.2454513}, project = {repair}, month_numeric = {12} } |
|
Is the Cure Worse than the Disease? Overfitting in Automated
Program Repair, Edward K. Smith, Earl Barr, Claire Le Goues, and Yuriy Brun, in Joint Meeting of the European Software Engineering Conference
and the Symposium on the Foundations of Software Engineering, ESEC/FSE ’15, 2015, pp. 532–543.
PDF
·
DOI
·
BibTeX
@inproceedings{SmithOverfitting2015, author = {Smith, Edward K. and Barr, Earl and {Le~Goues}, Claire and Brun, Yuriy}, title = {Is the Cure Worse than the Disease? {O}verfitting in Automated Program Repair}, booktitle = {Joint Meeting of the European Software Engineering Conference and the Symposium on the Foundations of Software Engineering}, series = {ESEC/FSE '15}, month = sep, year = {2015}, pages = {532--543}, location = {Bergamo, Italy}, publisher = {ACM}, doi = {10.1145/2786805.2786825}, project = {repair}, month_numeric = {9} } |
|
Evaluating the Flexibility of the Java Sandbox, Zack Coker, Michael Maass, Tianyuan Ding, Claire Le Goues, and Joshua Sunshine, in Annual Computer Security Applications Conference, ACSAC ’15, 2015, pp. 1–10.
PDF
·
Slides (PowerPoint)
·
Code
·
DOI
·
BibTeX
@inproceedings{CokerEvaluating2015, author = {Coker, Zack and Maass, Michael and Ding, Tianyuan and {Le~Goues}, Claire and Sunshine, Joshua}, title = {Evaluating the Flexibility of the Java Sandbox}, booktitle = {Annual Computer Security Applications Conference}, series = {ACSAC '15}, year = {2015}, pages = {1--10}, doi = {10.1145/2818000.2818003}, project = {develop} } |
|
SASS: Self-adaptation Using Stochastic Search, Zack Coker, David Garlan, and Claire Le Goues, in Software Engineering for Adaptive and Self-Managing Systems, SEAMS ’15, 2015, pp. 168–174.
PDF
·
Slides (PowerPoint)
·
Code
·
DOI
·
BibTeX
@inproceedings{CokerSASS2015, author = {Coker, Zack and Garlan, David and {Le~Goues}, Claire}, title = {{SASS}: {S}elf-adaptation Using Stochastic Search}, booktitle = {Software Engineering for Adaptive and Self-Managing Systems}, series = {SEAMS '15}, year = {2015}, doi = {10.1109/SEAMS.2015.16}, pages = {168--174}, project = {ai-sbe} } |
|
Repairing Programs with Semantic Code Search, Yalin Ke, Kathryn T. Stolee, Claire Le Goues, and Yuriy Brun, in Automated Software Engineering, ASE ’15, 2015, pp. 532–543.
PDF
·
Slides (PDF)
·
Code
·
DOI
·
BibTeX
@inproceedings{KeSearchRepair2015, author = {Ke, Yalin and Stolee, Kathryn T. and {Le~Goues}, Claire and Brun, Yuriy}, title = {Repairing Programs with Semantic Code Search}, booktitle = {Automated Software Engineering}, year = {2015}, series = {ASE '15}, pages = {532--543}, doi = {10.1109/ASE.2015.60}, project = {repair} } |
|
Proceedings of the International Symposium on Search-Based
Software Engineering, Claire Le Goues and Shin Yoo, Eds., , vol. 8636. Springer, 2014.
PDF
·
DOI
·
BibTeX
@proceedings{SSBSE2014, editor = {{Le~Goues}, Claire and Yoo, Shin}, title = {Proceedings of the International Symposium on Search-Based Software Engineering}, series = {SSBSE '14}, volume = {8636}, publisher = {Springer}, year = {2014}, doi = {10.1007/978-3-319-09940-8}, isbn = {978-3-319-09939-2} } |


Facility Type: [[info.facilityType]]
Address: [[info.addressName]]
Affiliated Organization: [[info.organization]]
Website: [[info.website]]
Notes: [[info.notes]]


new MdArray(arrayArgs)
Parameters:
| Name | Type | Description |
|---|---|---|
arrayArgs |
An object containing the keyword args for the constructor. |
Methods
-
<static> arange(args)
-
Create an MdArray containing a range of numeric values.
Parameters:
Name Type Description args
An object containing a shape field with an array of dimensions,
an end field, and an optional start and by field.Returns:
An MdArray containing the requested range of values.
-
<static> createFilled(args)
-
Return an MdArray of containing the requested fill value.
Parameters:
Name Type Description args
An object containing a shape field with an array of
dimensions, and a fill field.Returns:
An MdArray of the requested shape containing the repeated fill value.
-
<static> extendDims(arrayInst, nDims)
-
Extend arrayInst to meet the dimensions in nDims.
Parameters:
Name Type Description arrayInst
An instance of MdArray.
nDims
An array containing the required dims after extension.
Returns:
A new array that is a copy of arrayInst, but extended to satisfy the
extended dimensions in nDims. -
<static> ones(args)
-
Return an MdArray of ones. Args are the shape of the array.
Parameters:
Name Type Description args
An object containing a shape field with an array of
dimensions.Returns:
An MdArray of the requested shape containing all ones.
-
<static> zeros(args)
-
Return an MdArray of zeros. Args are the shape of the array.
Parameters:
Name Type Description args
An object containing a shape field with an array of
dimensions.Returns:
An MdArray of the requested shape containing all zeros.
-
add(that)
-
Add that to this, and return a new array containing the result.
Parameters:
Name Type Description that
The array to be added to this one.
Returns:
A new MdArray containing the values of that + this.
-
addOnes()
-
Add a column of ones as the first column in the MdArray.
NOTE: This only works for 2 dimensional arrays.
Returns:
A new MdArray with the 0'th column being all 1s.
-
applyOp(that, opFn, dim)
-
Apply the function opFn to all pairs of matching elements in this and that.
Parameters:
Name Type Description that
The other object that is part of this operation.
opFn
The operation to be applied to pairs of elements from this
and that.dim
The dimension along which to apply opFn. For example, dim=1 to
apply down columns of a 2D array.Returns:
A new MdArray containing the results of applying opFn to
this and that. -
compatible(that)
-
Test whether the MdArray that is compatible with this one, so that
element wise operations are able to be applied between this and that.Parameters:
Name Type Description that
An MdArray object to have it's dimensions checked against
this.Returns:
true => this and that are compatible, false otherwise.
-
copy(A)
-
Create a copy of this MdArray, and return it.
Parameters:
Name Type Description A
new MdArray object that is a copy of this one.
-
div(that)
-
Divide this by that and return a new MdArray containing the result.
Parameters:
Name Type Description that
The array to divide this by.
Returns:
A new MdArray containing the values of this / that.
-
dot(that)
-
Return the dot product of this and that.
Note: This method only runs for 1 or 2 dimensional MdArrays.
Parameters:
Name Type Description that
An MdArray to be dotted with this one.
Returns:
A value if this and that are 1-dimensional arrays, or a m x p
size MdArray where m is the number of rows in this, and p is the
number of columns in that. -
extendDims(newDims)
-
Extend the dimensions of this array to fit the values passed in in
newDims. The extension happens by repeating the last value, row, column
or other dimension, until the MdArray is of the requested size.Parameters:
Name Type Description newDims
The new dimensions the returned MdArray is to fill.
Returns:
This MdArray extended to have the requested dimensions.
-
findIndex(idx)
-
Return the required 1-d javascript array index indicated by the supplied
index coordinates.Parameters:
Name Type Description idx
An array containing the coordinate of the requested element.
Returns:
The index into data indicated by the supplied idx parameter.
-
flatten()
-
Return the data of this MdArray as a flat array.
Returns:
A flattened array version of this.
-
foreach(f)
-
Apply function f to each element of the MdArray.
Parameters:
Name Type Description f
A function that can be applied to elements of this.
-
get(arguments)
-
Get the value of the element indexed by the coordinate values in the
arguments.Parameters:
Name Type Description arguments
indices - eg. X.get(0,1,2);
Returns:
The value at the array position specified.
-
max(dimension)
-
Return the maximum of the values in this MdArray. If a dimension is
supplied, the max is down the requested dimension.Parameters:
Name Type Description dimension
The dimension to find the max along.
Returns:
A new MdArray containing the max, or if no dimension is supplied
a scalar with the value of max over the entire MdArray. -
mean(dimension)
-
Return the mean of the values in this MdArray. If a dimension is
supplied, the mean is down the requested dimension.Parameters:
Name Type Description dimension
The dimension to find the mean along.
Returns:
A new MdArray containing the mean, or if no dimension is
supplied, a scalar with the value of mean over the entire
MdArray. -
min(dimension)
-
Return the minimum of the values in this MdArray. If a dimension is
supplied, the min is down the requested dimension.Parameters:
Name Type Description dimension
The dimension to find the min along.
Returns:
A new MdArray containing the min, or if no dimension is supplied
a scalar with the value of min over the entire MdArray. -
mul(that)
-
Multiply this by that and return a new MdArray containing the result.
Parameters:
Name Type Description that
The array to be multiplied with this one.
Returns:
A new MdArray containing the values of this * that.
-
newSlice(sliceInfo)
-
Create and return a new MdArray object containing a copy of a slice of
this array.The sliceInfo parameter is an array of strings that follow the python
numpy array slice syntax. So for example:- "2:5" would be taken to mean take just all the values between 2 and 5,
- ":" would mean take all possible values for this dimension.
- ":5" would mean take all values up to 5,
and so on.
Parameters:
Name Type Description sliceInfo
An array containing strings of sliceInfo.
Returns:
A new MdArrayObject appropriately created for the slice.
-
pow(exp)
-
Raise the values in this array to power exp.
NOTE: This operation occurs in place.
Parameters:
Name Type Description exp
The exponent.
-
set(val, rest)
-
Set the value in the array element indexed by the remaining values in
arguments.Parameters:
Name Type Description val
The value to be assigned into the array.
rest
A list of indices, eg. X.set(x, 0,1,2);
-
slice(sliceInfo)
-
Create and return an ArrayView object representing a slice of this
array.The sliceInfo parameter is an array of strings that follow the python
numpy array slice syntax. So for example:- "2:5" would be taken to mean take just all the values between 2 and 5,
- ":" would mean take all possible values for this dimension.
- ":5" would mean take all values up to 5,
and so on.
Parameters:
Name Type Description sliceInfo
An array containing strings of sliceInfo.
Returns:
A new ArrayView object appropriately created for the slice.
-
std(dimension)
-
Return the standard deviation of the values in this MdArray. If a
dimension is supplied, the standard deviation is calculated down the
requested dimension.Parameters:
Name Type Description dimension
The dimension to find the standard deviation along.
Returns:
A new MdArray containing the std dev, or if no dimension is
supplied, a scalar with the value of std dev over the entire
MdArray. -
sub(that)
-
Subtract that from this, and return a new MdArray containing the result.
Parameters:
Name Type Description that
The array to be subtracted from this one.
Returns:
A new MdArray containing the values of this - that.
-
sum(dimension)
-
Return the sum of the values in this MdArray. If a dimension is supplied,
the sum occurs down the requested dimension.Parameters:
Name Type Description dimension
The dimension to sum along.
Returns:
A new MdArray containing the sum, or if no dimension is
supplied, a scalar value set to the sum over the entire
MdArray. -
T(args)
-
Return a new array containing the transpose of this array or, if inPlace
is true, modify this array to be Transposed.Parameters:
Name Type Description args
An optional object containing a boolean valued key inPlace.
Returns:
A new array, or this.
-
toString()
-
Return a string representation of the the multi-Dimensional array.
Returns:
A readable string for the array.


Documentation
Part II - Developing a Dojo Mobile Application: FlickrView
The first article in our series, Getting Started with Dojo Mobile, detailed the fundamental concepts and usage of the Dojo Toolkit's dojox/mobile library. In the remaining posts in this series, we'll embark on creating our own fully functional Dojo Mobile web application called FlickrView. This post will focus on familiarizing you with what FlickrView is, what we want it to do, and we'll get started on building the mobile application's HTML and CSS layout.
- Difficulty: Beginner
- Dojo Version: 1.9
- Series: FlickrView
What is FlickrView?
FlickrView is the name of the application we're going to create using Dojo Mobile and a few custom Dojo resources of our own. FlickrView won’t simply be a small exercise in using Dojo Mobile; FlickrView will be a useful, fully-functioning mobile web application. Our goals for FlickrView are as follows:
- Utilize Dojo Mobile's widgets to create a cross-device compatible mobile application
- Add our own custom elements, controls, and functionality to the web application
- Connect to Flickr open API using JSONP to retrieve public photos that match search criteria.
Investing time in brainstorming about the design and architecture of the application before jumping into coding is even more critical when creating mobile applications due to the restrictions on bandwidth.
Application Design and requirements
We’ll be creating FlickrView from the following sketches:
The first view to show up (the default view) is the Feed view which displays a list of photos according to search criteria. The header contains a button on the left to display the Settings view. Another button on the right allows to refresh the content of the view. The selection of a list item triggers a transition to the Details view with the full description of the photo.
Settings view options will be derived from Flickr public feed JSON query parameters:
- tags defines the tags query parameter
- selection defines the tagmode query parameter
- feed language defines the lang query parameter. The list of languages conforms to Flickr accepted languages values.
Published date, author, and photo description will result from the JSON request. Will go through this in detail later on.
Mobile Development Guidelines
Hold up! Before we jet off into coding FlickrView, there are a few things we need to remember about Dojo Mobile and mobile web development in general:
- Size Matter Every byte counts when it comes to creating mobile applications, so taking shortcuts you wouldn't otherwise take in a standard web app is acceptable. Remember that every dependency (in the form of Dojo classes, base or otherwise) you add increases download time to your users.
- Best Practices: Mobile != Web Best practices for JavaScript and any JavaScript toolkit dictate certain best practices. A few examples include not extending natives, not using global variables, and creating very flexible/generic classes. These best practices can cost you lots of extra code, so you may have to loosen your rules to create an efficient mobile app.
- Keep It Simple Creating an overly complex mobile application with a million custom styles and widgets and layouts will get you in trouble quickly. Creating a simple layout, then adding to it, is the optimal way to code mobile web applications.
We will not be throwing all best practices out the door with FlickrView. We will, however, find a solid balance of size savings vs. strict Dojo best practices.
Organizing your project
The application HTML will be at the root level and JavaScript, images and stylesheets living in dedicated directories.
We choose to name our application HTML file flickrview.html
and
put its CSS resources in css/flickrview.css
. We will add images
and javascript resources later.
Mobile Devices and Caching
Most mobile devices rely heavily on caching to ease the burden of data transfer. That's great for production apps but we're in the initial development phase so caching will be nothing short of frustrating when testing the application. Let's add a few cache-preventing META tags to our HTML page before developing the Settings view:
 <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="pragma" content="no-cache">
These META tags will be hugely helpful during development. They will need to be removed once TweetView goes into production.
FlickrView HTML structure
The first part, Getting Started with Dojo Mobile, provided a solid Dojo Mobile application template with the required theme stylesheet and SCRIPT tags from which to start from.
Here is now how should look our HTML before we define the three Views (SettingsView, FeedView and DetailsView):
<!DOCTYPE html>   <meta http-equiv="Content-type" content="text/html; charset=utf-8"/> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/> <meta name="apple-mobile-web-app-capable" content="yes"/>  <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="pragma" content="no-cache"> <title>Dojo Mobile tutorial | Flickrview | Part II | HTML Structure</title>  <link rel="stylesheet" type="text/css" href="css/flickrview.css">           application will go here
With this template in place, let's focus on putting together all our views: FeedView, SettingsView and DetailsView:
Feed View

Photo title here

published date here

author here

Another photo title here

published date here

author here

Settings View

 Tags <fieldset> <input type="text" id="tags" data-dojo-type="dojox/mobile/TextBox" data-dojo-props="value:''"> </fieldset>

 Selection <fieldset> <input type="checkbox" id="select" data-dojo-type="dojox/mobile/Switch" value="on" leftLabel="All" rightLabel="Any"> </fieldset>

 Feed language <fieldset> <input id="en-us" data-dojo-type="dojox/mobile/RadioButton" checked type="radio" name="feedLanguage" value="en-us">English
 <input id="fr-fr" data-dojo-type="dojox/mobile/RadioButton" type="radio" name="feedLanguage" value="fr-fr">French
 <input id="de-de" data-dojo-type="dojox/mobile/RadioButton" type="radio" name="feedLanguage" value="de-de">German
 <input id="it-it" data-dojo-type="dojox/mobile/RadioButton" type="radio" name="feedLanguage" value="it-it">Italian
 <input id="ko-kr" data-dojo-type="dojox/mobile/RadioButton" type="radio" name="feedLanguage" value="ko-kr">Korean
 <input id="pt-br" data-dojo-type="dojox/mobile/RadioButton" type="radio" name="feedLanguage" value="pt-br">Portuguese (Br)
 <input id="es-us" data-dojo-type="dojox/mobile/RadioButton" type="radio" name="feedLanguage" value="es-us">Spanish
 <input id="zh-hk" data-dojo-type="dojox/mobile/RadioButton" type="radio" name="feedLanguage" value="zh-hk">Traditional Chinese (HK)
 </fieldset>

Details View

 Photo description from Flicker here

Note that content is static. Getting content from Flickr is covered in the next part of this series: FlickrView: Implementing FeedView.
- Instead of using the widget dojox/mobile/View, we have choose to use dojox/mobile/ScrollableView. ScrollableView allows the header to be fixed to the top of the view while the content will scroll. It is particularly well adapted for small screen devices or when the view contains an undetermined number of items.
- The header is rendered by the widget dojox/mobile/Heading. We also added dojox/mobile/ToolBarButton widgets:
- will refresh the content of the Feed view
- transitions to the Settings view
- transition to the Feed view
- transition back to the Feed view
- Note the attribute data-dojo-props of ToolBarButton: refresh and settings buttons are rendered using images we put in our images directory, and declared in the icon property.
- Also, note how transitions are declared in data-dojo-props.
moveTo
defines the target,transition
defines the type of transition andtransitionDir
defines the direction of the transition. See dojox/mobile/heading for more details. - On the Feed view we declared 2 dojox/mobile/ListItem widgets for the sake of the mockup. Eventually we will programmatically generate ListItems from the result of a JSONP request.
- Custom CSS are used only to format the ListItem. All other formatting styles are already provided by Dojo Mobile theme.
As usual, do not forget to require the widgets you declared in your HTML:
require([ //... "dojox/mobile/ScrollableView", "dojox/mobile/ListItem", "dojox/mobile/FormLayout", "dojox/mobile/TextBox", "dojox/mobile/RadioButton", "dojox/mobile/Heading", "dojox/mobile/EdgeToEdgeList", "dojox/mobile/RoundRect", "dojox/mobile/Switch" ], function (parser) { //... });
Our application layout is now complete!
FlickrView Has Taken Shape!
Creating the basic layout of FlickrView was simple: add ScrollingView and ToolBar widgets. I'd like to point out that every pieces of our application is currently included within dojox/mobile: Headings, Toolbars, TextBox… they're all there to be quickly implemented!
Now we want to extend ScrollableView to specialize our views:
- Settings view to display the current settings and update flickrview.QUERY according to user inputs
- Feed view to be in charge of getting data from Flickr and display the result.
Extending ScrollableView
First we define our classes by creating skeletons files js/FeedView.js
and js/SettingsView.js
:
define([ "dojo/_base/declare", "dojox/mobile/ScrollableView" ], function(declare, ScrollableView){ return declare([ScrollableView], { }); });
Now we can update the HTML attributes data-dojo-type to use the new classes:
 <div id="feed" data-dojo-type="flickrview/FeedView"

In the meantime we must require our classes name to ensure the parser loads them:
require([ //... "flickrview/FeedView", "flickrview/SettingsView" ], function (parser) { //... });
Congratulation! Our mock application now uses dedicated classes for the feed and settings view.
In this part we introduced the mobile application we are building with Dojo Mobile: FlickrView. Starting from the application design and requirements, we built the general layout template and came up with a mockup of the application. We also talked about best practices and we extended ScrollableView so we are now ready to implement FlickrView to make it work as expected!
Looking forward to the next part in our FlickrView series, where we will implement FeedView to dynamically:
- get feeds from Flickr with dojo/request/script,
- build a list of customized dojox/mobile/ListItem.
Download The Source
Resources & references
- Dojo Mobile Reference Guide
- The Dojo Toolkit API
- Dojo Request Script/JSONP (Reference Guide)
- dojox/mobile Heading (Reference Guide)


Is there a connection between the US government's spending in foreign countries and human development? The US government focuses spending on alleviating suffering in struggling countries. This leads to a negative correlation between government spending and quality of life scores as struggling countries will predictably have lower scores. While we could not predict how much worse those scores would be if the US was to cut funding, we can pinpoint countries that are severely lacking and underfunded.
We used two data sets : US Foreign Aid and UN Human Development Reports. The US Foreign Aid data was compiled by the US government and contains the records for foreign aid transactions from 1946 to present. The UN Human Development Reports were compiled by the United Nations and contains metrics on each country’s well-being and quality of life.


Here is the source code for the application discussed in this chapter. The source code is in two files:
# Permanent name: This is required by Glue to set the permanent name # and extension of the geode. The permanent name of a library is what # goes in the imported library table of a client geode (along with the # protocol number). It is also what Swat uses to name the patient. # name tutorial.app
# Long filename: this name can displayed by the system. "EC " is # prepended to this when the error-checking version is linked by Glue. # longname "Tutorial Sample Application"
# Token: The four-letter name is used by the system to locate the # icon for this application in the token database. The tokenid # number corresponds to the manufacturer ID of the program's author # for uniqueness of the token. Since this is a sample application, we # use the manufacturer ID for the SDK, which is 8. # tokenchars "TUTO" tokenid 8
# Specify geode type: This geode is an application, and will have # its own process (thread). # type appl, process, single
# Specify class name for application thread. Messages sent to the # application thread (a.k.a. "process" when specified as the output # of a UI object) will be handled by this process class. # class TutorialProcessClass
# Specify application object. This is the object that serves as # the top-level UI object in the application. # appobj TutorialApp
# Specify for which platform this application will be compiled. # Glue uses this to make sure that the libraries we are using # (listed below) are available for this platform. # In this case, the specified platform is the Nokia 9000i Communicator # platform n9000v20
# Heapspace: This is roughly the non-discardable memory usage # (in paragraphs (16 bytes/paragraph)) of the application and any # transient libraries that it depends on, plus an additional # amount for thread activity. To find the heapspace for an # application, use the Swat "heapspace" command. # heapspace 3K
# Libraries: list which libraries are used by the application. # The foam library is for the Nokia 9000i Communicator only. # library geos library ui library foam
# Resources: list all resource blocks which are used by the # application whose allocation flags can't be inferred by Glue. # Usually this is needed only for object blocks, fixed code # resources, or data resources that are read-only. Standard # discardable code resources do not need to be mentioned. # resource APPRESOURCE ui-object resource INTERFACE ui-object
/******************************************************************** * Include Files *******************************************************************/ @include <stdapp.goh> @include <foam.goh>
/******************************************************************** * Class Definitions *******************************************************************/ /* * Here we define "TutorialProcessClass" as a subclass of the * system provided "GenProcessClass". As this application is * launched, an instance of this class will be created, and * will handle all application-related events (messages). The * application thread will be responsible for running this * object, meaning that whenever this object handles a message, * we will be executing in the application thread. * * You will find no object in this file declared to be of this * class. Instead, it is specified as the class for the * application thread in "tutorial.gp". */ @class TutorialProcessClass, GenProcessClass;
/* * Define messages for this class here. Most commonly, UI * objects will send these messages to the application thread * when they've been activated by the user. */ @endc; /* end of class definition */
/******************************************************************** * Class Declarations *******************************************************************/ /* * Each object class requires a "class record" be stored in * fixed memory for it. The class record is used by the GEOS * message system for the delivery of messages sent to an * object of the class. The class record needs to be defined * in the file where the objects of that class are defined. * The @classdecl GOC directive tells GOC to create the class * record here. * * The neverSaved flag is necessary because ProcessClass * objects are hybrid objects. It tells the system that no * object of this class will ever be loaded from or stored to * a state file. */ @classdecl TutorialProcessClass, neverSaved;
/******************************************************************** * UI Object Resources *******************************************************************/
/******************************************************************** * AppResource Resource *******************************************************************/ @start AppResource;
/* * Application Object * * The very top-level generic object of an application MUST be * a GenApplication object. The tutorial.gp file contains the "appobj" * statement which indicates that this "TutorialApp" object is in * fact the top-level UI object. * * This object should be in its own resource, as it is all that * need be in memory when the application is iconified. As such, * its resource should be as small as possible. * * FoamSubApplicationClass is for the Nokia 9000i Communicator * only. It adds special behavior for that platform. */ @object FoamSubApplicationClass TutorialApp = { /* * While the application object isn't shown on the screen, * it has a list of VisMonikers for three purposes: * 1) The GenPrimary (see below) inherits the moniker * when it comes up on screen. * 2) When GeoManager needs to display an icon for the * application, and there's none for it in the Token * Database, it launches the app and sends a message * to the application object to install its list of * monikers in the token database under the * application's token. * 3) When the GenPrimary is minimized, it uses the most * appropriate graphical moniker from this list for the * application's icon. If there's an abbreviated-text * moniker in the list, that's used as the icon title. * Else any regular-text moniker is used. */ GI_visMoniker = list { @TutorialTextMoniker };
/* * The GenApplication object has at least one child: * the main application window. */ GI_comp = @TutorialPrimary;
/* * The main window should appear on-screen when the application * is launched, so place it on the GAGCNLT_WINDOWS GCN list. * This causes the application object to bring it on-screen at * the appropriate time. */ gcnList( MANUFACTURER_ID_GEOWORKS, GAGCNLT_WINDOWS ) = @TutorialPrimary; }
@visMoniker TutorialTextMoniker = "My Tutorial"; @localize "Program Title";
@end AppResource;
/******************************************************************** * Interface Resource * This resource is for miscellaneous UI objects. *******************************************************************/ @start Interface;
/* * Primary window * * Every application has at least one GenPrimary object. * This object serves as the main window of the application. * Inside this window, various UI components, such as menus * or lists, can be placed. */ @object GenPrimaryClass TutorialPrimary = { /* * This window has two children: * the GenView object and the Close button (see below). */ GI_comp = @TutorialView, @TutorialCloseTrigger; }
/* * GenView object * * This GenView object creates a window where the application can * display portions of the document as necessary. As we want this * window to be scrollable, the specific UI will create scroll * bars with which the user can interact. Whenever a portion of * the window needs to be redrawn, the GenView object will * invalidate a portion of the window, causing a MSG_META_EXPOSED * to be sent to the application. The application will draw the * document into the window as requested. The window keeps track * of a mask, which is used to clip the application's drawing * operations, so that only the invalid portion of the window is * drawn to. */ @object GenViewClass TutorialView = { /* * Make sure the view never gets larger * than the thing being displayed within it. */ GVI_horizAttrs = @default | GVDA_NO_LARGER_THAN_CONTENT; GVI_vertAttrs = @default | GVDA_NO_LARGER_THAN_CONTENT; /* * When the contents of this view (i.e. the document) must be * updated, the UI should send a MSG_META_EXPOSED to the * TutorialProcessClass object. */ GVI_content = process; };
/* * Close trigger * * On certain systems we should provide a way to exit the * application. On the Nokia 9000i Communicator we have a * close trigger like this one. */ @object GenTriggerClass TutorialCloseTrigger = { GI_visMoniker = "Close"; /* * The next two instance fields are part of the * GenTriggerClass. They specify the recipient object * and the message that will be sent to that object * when this trigger is activated. */ GTI_destination = @TutorialApp; GTI_actionMsg = MSG_FSA_RETURN_TO_LAUNCHER; /* * The specific UI uses this combination of hints * to place this trigger on the right side of the * Nokia 9000i Communicator's screen. */ HINT_SEEK_MENU_BAR; HINT_SEEK_REPLY_BAR; HINT_SEEK_SLOT = 3; }
@end Interface;


AMAZING PEOPLE ARE MAKING AMAZING DESIGNS IN A FUN ENVIRONMENT
When you work with us, you are part of a team of commited collaborators. All aspects of our software development process are intergrated, interactive
and agile.
Our approach unifies design, development and product managemet to create exceptional products.
We start each project by understanding your business goals, the user's needs and the product requiremets.
Then we help translate them into effective and elegant solutions.
Before we sign a contract or write a line of code our team will spend the necessary time eeded to understad your product vision.
The outcome of this scoping session is proposal or high-level statement work.
based on your requirements, we can provide accomplete offering or just the pieces you need.
DESIGN
Our design practice offers a full range of services including brand strategy, interaction and visual design and user experience testing.
Throughout your project, our designers create and implement visual design and workflows, solicit user feedback and work with you to make sure what gets built is what is needed.
DEVELOPMENT
All engineers are fluent in the latest enterprise, mobile and web development technologies.
They collaborate with your team to write, and improve code on a daily basis, using proven practices such as test-driven development and pair programming.
PRODUCT MANAGEMENT
Planning and development is iterative. Because we are constantly coding and testing, the products we build are always ready to go live.
This iterative process allows for changes as business requirements evolve.
PROJECT 3
PROJECT 4
PROJECT 5
PROJECT 6
PROJECT 7
BAILY
WONGER
DELANI STUDIO
2021


CUDA utilities¶
Device, context and memory management on CuPy.
Chainer uses CuPy (with very thin wrapper) to exploit the speed of GPU
computation. Following modules and classes are imported to cuda
module for convenience (refer to this table when reading chainer’s source
codes).
| imported name | original name |
|---|---|
chainer.cuda.cupy |
cupy |
chainer.cuda.ndarray |
cupy.ndarray |
chainer.cuda.cupy.cuda |
cupy.cuda |
chainer.cuda.Device |
cupy.cuda.Device |
chainer.cuda.Event |
cupy.cuda.Event |
chainer.cuda.Stream |
cupy.cuda.Stream |
Chainer replaces the default allocator of CuPy by its memory pool implementation. It enables us to reuse the device memory over multiple forward/backward computations, and temporary arrays for consecutive elementwise operations.
Devices¶
-
chainer.cuda.
get_device
(*args)[source]¶ Gets the device from an ID integer or an array object.
This is a convenient utility to select a correct device if the type of
arg
is unknown (i.e., one can use this function on arrays that may be on CPU or GPU). The returned device object supports the context management protocol of Python for the with statement.Parameters: args – Values to specify a GPU device. numpy.ndarray
objects are skipped. If all arguments arenumpy.ndarray
objects, it returns a dummy device object. Otherwise, the first non-numpy
object is used to select a device. If it is acupy.ndarray
object, its device is returned. Otherwise, the argument is passed to the initializer ofDevice
and it is returned.Returns: Device object specified by given args
.See also
See
cupy.cuda.Device
for the device selection not by arrays.
CuPy array allocation and copy¶
Note
As of v1.3.0, the following array construction wrappers are marked as
deprecated. Use the corresponding functions of the cupy
module
instead. The main difference of them is that the default dtype is changed
from float32 to float64.
| Deprecated functions | Recommended functions |
|---|---|
chainer.cuda.empty |
cupy.empty() |
chainer.cuda.empty_like |
cupy.empty_like() |
chainer.cuda.zeros |
cupy.zeros() |
chainer.cuda.zeros_like |
cupy.zeros_like() |
chainer.cuda.ones |
cupy.ones() |
chainer.cuda.ones_like |
cupy.ones_like() |
chainer.cuda.full |
cupy.full() |
chainer.cuda.full_like |
cupy.full_like() |
-
chainer.cuda.
copy
(array, out=None, out_device=None, stream=None)[source]¶ Copies a
cupy.ndarray
object using the default stream.This function can copy the device array to the destination array on another device.
Parameters: - array (cupy.ndarray) – Array to be copied.
- out (cupy.ndarray) – Destination array.
If it is not
None
, thenout_device
argument is ignored. - out_device – Destination device specifier. Actual device object is
obtained by passing this value to
get_device()
. - stream (cupy.cuda.Stream) – CUDA stream.
Returns: Copied array.
If
out
is not specified, then the array is allocated on the device specified byout_device
argument.Return type: cupy.ndarray
-
chainer.cuda.
to_cpu
(array, stream=None)[source]¶ Copies the given GPU array to host CPU.
Parameters: - array – Array to be sent to CPU.
- stream (cupy.cuda.Stream) – CUDA stream.
Returns: Array on CPU.
If given
array
is already on CPU, then this function just returnsarray
without performing any copy.Return type:
-
chainer.cuda.
to_gpu
(array, device=None, stream=None)[source]¶ Copies the given CPU array to specified device.
Parameters: - array – Array to be sent to GPU.
- device – Device specifier.
- stream (cupy.cuda.Stream) – CUDA stream.
Returns: Array on GPU.
If
array
is already on GPU, then this function just returnsarray
without performing any copy. Note that this function does not copycupy.ndarray
into specified device.Return type: cupy.ndarray
Kernel definition utilities¶
-
chainer.cuda.
memoize
(for_each_device=False)[source]¶ Makes a function memoizing the result for each argument and device.
This is a similar version of
cupy.memoize()
. The difference is that this function can be used in the global scope even if CUDA is not available. In such case, this function does nothing.Note
This decorator acts as a dummy if CUDA is not available. It cannot be used for general purpose memoization even if
for_each_device
is set to False.
-
chainer.cuda.
elementwise
(*args, **kwargs)[source]¶ Creates an elementwise kernel function.
This function uses
memoize()
to cache the kernel object, i.e. the resulting kernel object is cached for each argument combination and CUDA device.The arguments are the same as those for
cupy.ElementwiseKernel
, except that thename
argument is mandatory.
-
chainer.cuda.
reduce
(*args, **kwargs)[source]¶ Creates a global reduction kernel function.
This function uses
memoize()
to cache the resulting kernel object, i.e. the resulting kernel object is cached for each argument combination and CUDA device.The arguments are the same as those for
cupy.ReductionKernel
, except that thename
argument is mandatory.
CPU/GPU generic code support¶
-
chainer.cuda.
get_array_module
(*args)[source]¶ Gets an appropriate one from
numpy
orcupy
.This is almost equivalent to
cupy.get_array_module()
. The only difference is that this function can be used even if CUDA is not available.Parameters: args – Values to determine whether NumPy or CuPy should be used. Returns: cupy
ornumpy
is returned based on the types of the arguments.Return type: module


Angular library built with ❤ using ngx-library yeoman generator.
Scroll down to see it in action!
Code on Github


The goals of this component are: 1) to monitor the prevalence and trends in major cardiovascular conditions, and overall risk factors in the U.S.; and 2) to evaluate prevention and treatment programs targeting cardiovascular disease in the U.S.
Blood lipid levels are the main elements of the cardiovascular disease laboratory in NHANES. Cardiovascular disease is the leading cause of death in the United States. The data will be used to monitor the status of hyperlipidemia, and the success of the National Cholesterol Education Program.
Examined participants aged 6 years and older were eligible.
The laboratory method used for total cholesterol is an enzymatic assay. In this enzymatic assay, esterified cholesterol is converted to cholesterol by cholesterol esterase. The resulting cholesterol is then acted upon by cholesterol oxidase to produce cholest-4-en-3-one and hydrogen peroxide. The hydrogen peroxide then reacts with 4-aminophenazone in the presence of peroxidase to produce a colored product that is measured at 505 nm (secondary wavelength = 700 nm). The final step is known as the Trinder reaction. This method is a single reagent, endpoint reaction that is specific for cholesterol.
Cholesterol, a steroid molecule with a hydroxyl group in the C3 position, is synthesized in many types of tissue, but mainly in the liver and intestinal wall. About 75 percent of cholesterol is newly synthesized, with the remainder originating from dietary intake. Cholesterol measurement is performed to screen for atherosclerotic risk and in the diagnosis and treatment of disorders involving elevated cholesterol as well as lipid and lipoprotein metabolic disorders.
Refer to the Laboratory Method Files section for a detailed description of the laboratory methods used.
There were no changes to the lab method, lab equipment, or lab site for this component in the NHANES 2015-2016 cycle.
Total Cholesterol (September 2017)
Serum samples were processed, stored, and shipped to the University of Minnesota, Minneapolis, MN for analysis.
Detailed instructions on specimen collection and processing are discussed in the NHANES Laboratory Procedures Manual (LPM). Vials are stored under appropriate frozen (–30°C) conditions until they are shipped to University of Minnesota for testing.
The NHANES quality assurance and quality control (QA/QC) protocols meet the 1988 Clinical Laboratory Improvement Act mandates. Detailed QA/QC instructions are discussed in the NHANES LPM.
Mobile Examination Centers (MECs)
Laboratory team performance is monitored using several techniques. NCHS and contract consultants use a structured competency assessment evaluation during visits to evaluate both the quality of the laboratory work and the quality-control procedures. Each laboratory staff member is observed for equipment operation, specimen collection and preparation; testing procedures and constructive feedback are given to each staff member. Formal retraining sessions are conducted annually to ensure that required skill levels were maintained.
Analytical Laboratories
NHANES uses several methods to monitor the quality of the analyses performed by the contract laboratories. In the MEC, these methods include performing blind split samples collected on “dry run” sessions. In addition, contract laboratories randomly perform repeat testing on 2% of all specimens.
NCHS developed and distributed a quality control protocol for all the contract laboratories which outlined the use of Westgard rules (Westgard et al, 1981) when running NHANES specimens. Progress reports containing any problems encountered during shipping or receipt of specimens, summary statistics for each control pool, QC graphs, instrument calibration, reagents, and any special considerations are submitted to NCHS quarterly. The reports are reviewed for trends or shifts in the data. The laboratories are required to explain any identified areas of concern.
The data were reviewed. Incomplete data or improbable values were sent to the performing laboratory for confirmation.
One derived variable was created in this data file. The variable was created using the following formula:
LBDTCSI
The total cholesterol in mg/dL (LBXTC) was converted to mmol/L (LBDTCSI) by multiplying by 0.02586.
Refer to the 2015-2016 Laboratory Data Overview for general information on NHANES laboratory data.
Demographic and Other Related Variables
The analysis of NHANES 2015-2016 laboratory data must be conducted using the appropriate survey design and demographic variables. The NHANES 2015-2016 Demographics File contains demographic data, health indicators, and other related information collected during household interviews as well as the sample design variables. The recommended procedure for variance estimation requires use of stratum and PSU variables (SDMVSTRA and SDMVPSU, respectively) in the demographic data file.
The Fasting Questionnaire File includes auxiliary information such as fasting status, length of fast, and the time of venipuncture.
The laboratory data file can be linked to other NHANES data file using the unique survey participant identifier (i.e., SEQN).
Detection Limits
The detection limits were constant for this analyte in the data set. The variable prefixed LBX (ex., LBXTC) provides the analytic result for that analyte.
The lower limit of detection (LLOD, in mg/dL) for total cholesterol:
| Variable Name | SAS Label | LLOD |
| LBXTC | Serum total cholesterol | 4 |
Exam sample weights should be used for analyses. Please refer to the NHANES Analytic Guidelines and the on-line NHANES Tutorial for further details on the use of sample weights and other analytic issues.
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 77 to 545 | Range of Values | 7256 | 7256 | |
| . | Missing | 765 | 8021 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 1.99 to 14.09 | Range of Values | 7256 | 7256 | |
| . | Missing | 765 | 8021 |


public class CannyEdgeFilter
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
doNotNormalizeByHistogram |
protected float |
highThreshold |
protected boolean |
histogramEqualizationCheckFinished |
protected HistogramHolder |
imgHistogram
represents the original image histogram if histogram equalization was
not performed, else, represents the image histogram just after
histogram equalization
|
protected java.util.logging.Logger |
log |
protected boolean |
useOutdoorMode |
| Constructor and Description |
|---|
CannyEdgeFilter() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
apply2LayerFilter(GreyscaleImage input) |
void |
applyFilter(GreyscaleImage input) |
protected void |
applyHistogramEqualization(GreyscaleImage input) |
protected GreyscaleImage[] |
createGradientProducts(GreyscaleImage img)
construct the gradient in X, gradient in Y and the theta image from the
given img and return the results as new GreyscalImage[]{gX, gY, gXY, theta}.
|
void |
doNotPerformHistogramEqualization()
apply histogram normalization before processing.
|
GreyscaleImage |
getGradientXY() |
void |
overrideHighThreshold(float thresh) |
void |
setLineThinnerClass(java.lang.Class<? extends ILineThinner> cls) |
void |
useLineDrawingMode()
Line Drawing Mode uses the difference of Gaussians instead of 1st deriv Gaussian
to try to keep the lines thinner from the start.
|
void |
useOutdoorMode() |
protected HistogramHolder imgHistogram
protected boolean histogramEqualizationCheckFinished
protected boolean doNotNormalizeByHistogram
protected float highThreshold
protected java.util.logging.Logger log
protected boolean useOutdoorMode
public void doNotPerformHistogramEqualization()
public void overrideHighThreshold(float thresh)
public void useLineDrawingMode()
public void setLineThinnerClass(java.lang.Class<? extends ILineThinner> cls)
public void useOutdoorMode()
public void applyFilter(GreyscaleImage input)
protected void apply2LayerFilter(GreyscaleImage input)
protected GreyscaleImage[] createGradientProducts(GreyscaleImage img)
img
- protected void applyHistogramEqualization(GreyscaleImage input)
public GreyscaleImage getGradientXY()


Integer shift operations outside the range 0..31
and long shift operations outside the
range 0..63
are reported. Shifting by negative or overly large values is almost certainly
a coding error.
Example:
int shiftSize = 32;
// Warning: shift by 32 bits is equivalent to shift by 0 bits, so there's no shift at all.
int mask = (1 << shiftSize) - 1;


The simplest kind of SQL Server stored procedure that you can call is one that contains no parameters and returns a single result set. The Microsoft SQL Server JDBC Driver provides the SQLServerStatement class, which you can use to call this kind of stored procedure and process the data that it returns.
When you use the JDBC driver to call a stored procedure without parameters, you must use the call
SQL escape sequence. The syntax for the call
escape sequence with no parameters is as follows:
{call procedure-name}
As an example, create the following stored procedure in the SQL Server 2005 AdventureWorks sample database:
CREATE PROCEDURE GetContactFormalNames AS BEGIN SELECT TOP 10 Title + ' ' + FirstName + ' ' + LastName AS FormalName FROM Person.Contact END
This stored procedure returns a single result set that contains one column of data, which is a combination of the title, first name, and last name of the top ten contacts that are in the Person.Contact table.
In the following example, an open connection to the AdventureWorks sample database is passed in to the function, and the executeQuery method is used to call the GetContactFormalNames stored procedure.
public static void executeSprocNoParams(Connection con) { try { Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("{call dbo.GetContactFormalNames}"); while (rs.next()) { System.out.println(rs.getString("FormalName")); } rs.close(); stmt.close(); } catch (Exception e) { e.printStackTrace(); } }


There's a time-honored theory among hardcore viewers of the "Star Trek" films: Every odd-numbered movie in the series stinks. For example, the first, "Star Trek: The Motion Picture," was a long-winded yawn, but the follow-up, "The Wrath of Khan" was terrific fun. The third, "Search For Spock," was mildly tedious, but the fourth, "The Journey Home," spiced up the usual formula with romance and wacky humor, as the Enterprise crew tried to fit in in contemporary San Francisco. And so on and on. "Star Trek: Insurrection" is the ninth installment, following 1996's "First Contact," which many regard as one of the very finest of the bunch. "Insurrection" doesn't have the nightmarish visuals of that film, or as strong a story, but it features enough goofy humor and clever plot twists to qualify as the "Trek" that effectively breaks the curse. The movie's single best feature is its villain Ru'afo, played with scornful malevolence by F. Murray Abraham; he can take his place alongside Alice Krige's Borg Queen in "First Contact" and Ricardo Montalban's Khan as a memorably creepy nemesis. Ru'afo is the leader of a race that ages so quickly they must frequently subject themselves to the scariest onscreen face-lifts since Katherine Helmond's nip and tuck in "Brazil." So who can blame him and his gang for wanting to move to a planet where pulsating rings of radiation have allowed the peaceful Baku to remain both youthfully spry and as mellow as the inhabitants of Shangri-La? After meeting the Baku, most of whom talk like they've read too much Rod McKuen ("A single moment in time can be a universe in itself," theorizes one), Picard (Patrick Stewart) decides to prevent Ru'afo's planned relocation of the tribe to another world. Cue the requisite explosions, chases and perils. But though it moves swiftly, Michael Piller's screenplay takes a few breaks for romance -- Picard and Riker (Jonathan Frakes, who also directed) each get a love interest -- and laughs, as Data (Brett Spiner) rehearses "HMS Pinafore" and Picard re-discovers the magic of the mambo. If the picture errs on the side of touchy-feely occasionally, it still manages to regain its bearings in time for a suspenseful climax that includes a major surprise regarding Ru'afo. Though it's not quite top-flight, "Insurrection" is reasonable fun and its tale of eternal life is quite fitting in this, the 20th anniversary of the "Star Trek" movies. Live long and prosper, indeed. James Sanford
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Show popup
Save
×
Popups are really just a clever application of CSS. I've found that no two popups are as alike as you might think, so I usually make multiple hidden popup elements for each popup I need.


Running tests...
(Check console for any output)
Finished tests...
At least the test script didn't throw an error itself ;)


Henley gets 'ton of respect' despite costly eight-shot penalty
American golfer Russell Henley has earned praise after copping a bizarre eight-stroke penalty that took him from the leaderboard to missing the cut at the US PGA Tour event in Mexico, as Jason Day had a day to forget.
Harris English shot a seven-under 64 to take a one-shot, half-way lead over Vaughan Taylor on Saturday, but the big talking point was the whopping penalty imposed on Henley.
The three-time tour winner was signing his used balls for fans when he realised one was a slightly different type of Titleist ProV1x than the rest and reported it to rules officials.
Under the "One Ball Rule" used on most professional tours, golfers must use the same brand and make of ball throughout a round.
Eight rules officials on site conferred for about an hour and a half and even consulted the USGA before imposing a two-shot penalty for each of the four holes Henley thought he'd used the ball on.
After an opening 66, Henley's two-under 69 on Saturday turned into a 77 and he missed the cut by two shots.
"It was a small dash, a different way [the ball] was marked that would have been easy to overlook," Tour rules official Brad Fabel said.
"He came to us and said he didn't know how it had gotten in his bag."
There was no question, Henley said, that he'd used the ball.
He gives balls he's put into play to his caddie to mark accordingly, and the Pro V1x in question was marked as such.
Henley believed he'd used it on holes 9, 10, 11 and 12, turning his four pars into double bogeys.
The mix-up ends Henley's made cuts streak at eight, including the past four starts of last season and the first four of this season. He took the news well.
"He was great," Fabel said. "I've got a ton of respect for that gentleman."
Meanwhile, Day had a shocker as he prepared for next month's trip Down Under to contest the Australian Open and Presidents Cup.
The former world No.1 racked up a a six-over-par 77 and missed the cut.
Day needed one of captain Ernie Els' discretionary captains' picks last week to get into the 12-man International team, which will battle the United States in the Presidents Cup at Royal Melbourne.
He would be glad Els didn't get to ponder his triple bogey, double bogey and five bogeys on Saturday as he missed the half-way cut by five shots.
The 77 was Day's worst score on the PGA Tour outside the four major championships since May 2017.
Aaron Baddeley was the best of the Australians, tied 23rd after a 67 while Matt Jones (69, -2) also made the cut.
Reuters


THE CUP (Fine Line) Starring: Orgyen Tobgyal, Jamyang Lodro, Lama Chonjor, Neten Chokling, Kunsang Nyima, Pema Tshundup. Screenplay: Khyentse Norbu. Producers: Malcolm Watson and Raymond Steiner. Director: Khyentse Norbu MPAA Rating: G. Running Time: 93 minutes. Reviewed by Scott Renshaw.
I mean no disrespect to the burgeoning Bhutanese film industry when I suggest that being selected as the Bhutanese representative for the Best Foreign Language Film Oscar doesn't automatically qualify as an impressive achievement. In fact, THE CUP is the first ever film selected as an Academy Award candidate from Bhutan, made by a revered Buddhist teacher making his first film. It's understandable that THE CUP would warrant some unique attention on this basis. The question is whether anyone would be paying much attention to THE CUP if it didn't happen to offer a unique cultural perspective.
It's always tough to say, but I'm guessing not. There are certainly some charms in this fact-based bit of whimsy, set in 1998 at a Tibetan Buddhist monastery-in-exile. The monastery's leaders are awaiting two new arrivals as the film begins, brothers attempting to make the escape from occupied Tibet. When they finally do arrive, Palden (Kunsang Nyima) and Nyima (Pema Tshundup) find the young monks-in-training are currying a passion for something more than Buddhist teachings: the ongoing World Cup soccer tournament. The young monk Orgyen (Jamyang Lodro) has taken to sneaking into town after dark to watch BBC satellite broadcasts, but when he and some fellow monks are caught by chief disciplinarian Geko (Orgyen Tobgyal), it looks like no one will be seeing the final match -- unless the abbot (Lama Chonjor) grants their request to rent a television to watch the match in the monastery.
There's no denying that THE CUP may be worth seeing simply for its sociology lesson. The monastery is depicted not as a relentlessly somber place, but as a sort of boarding school with boys who will be boys no matter their national origin (passing notes during prayers, sewing another boy's robe to a mat, scribbling nationalist graffiti on the monastery walls). American films with Tibetan Buddhist themes -- SEVEN YEARS IN TIBET and KUNDUN -- have often seemed to be so concerned with telling the story of an important political issue that the personal side has been lost. It is certainly refreshing to see a story in which Tibetan people are seen as people, and not merely as martyrs.
And then one moves past that humanizing appeal, and doesn't find a whole lot more. Writer/director Khyentse Norbu understands his people, but he has a lot to learn about structuring a narrative. Even at only 93 minutes, THE CUP drags along towards the monks' eventual efforts to gather enough money to rent the television and satellite dish, then try to get the whole apparatus working. It's worth a few chuckles to see the monks trying to navigate the technology; it's considerably less entertaining watching the film meander, dabbling in the crowd-pleasing qualities of shadow puppets and a sort of "Gift of the Magi" sub-plot involving Orgyen and a younger monk's beloved keepsake.
The pacing of THE CUP may be perfectly representative of the culture from which it originates, just as the story itself may be perfectly representative. I find myself leaning towards a recommendation simply because it showed me something I didn't know before, which is one of the reasons I love film in the first place. There's just not much substance to THE CUP worth getting enthusiastic over, unless the mere notion of Tibetan monks playing pranks and watching soccer is enough of a hilarious incongruity to carry your viewing experience. The amateur cast and rookie director can't make the film soar on its own terms. Khytentse Norbu might have been better served making a documentary about life among young Tibetan monks ... or about making Bhutan's first Oscar contender.
On the Renshaw scale of 0 to 10 protective cups: 6.
Visit Scott Renshaw's Screening Room http://www.inconnect.com/~renshaw/ *** Subscribe to receive new reviews directly by email! See the Screening Room for details, or reply to this message with subject "Subscribe".
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


When considering the overhead of running a coffee shop in a neighborhood, it's not just real estate and product costs one has to consider, but also the payroll costs of labor in that market.
When considering the overhead of running a coffee shop in a neighborhood, it's not just real estate and product costs one has to consider,but also the payroll costs of labor in that market.When considering the overhead of running a coffee shop in a neighborhood, it's not just real estate and product costs one has to consider, but also the payroll costs of labor in that market.When considering the overhead of running a coffee shop in a neighborhood, it's not just real estate and product costs one has to consider, but also the payroll costs of labor in that market.
When considering the overhead of running a coffee shop in a neighborhood, it's not just real estate and product costs one has to consider, but also the payroll costs of labor in that market.
35%
Shop Sale
OFF
When considering the overhead of running a coffee shop in a neighborhood, it's not just real estate and product costs one has to consider, but also the payroll costs of labor in that market.
Brown Leatherette
Price: $85.58
Oriflame Powder Brush
Price: $85.58
White Musk Fragrance
Price: $85.58
Woman Cream Heels
Price: $85.58
Vida High Quality
Price: $85.58
Blue Sun Glasses
Price: $85.58
Fastrack Analog Watch
Price: $85.58
Black Leatherette
Price: $85.58
When considering the overhead of running a coffee shop in a neighborhood, it's not just real estate and product costs one has to consider,but also the payroll costs of labor in that market. When considering the overhead of running a coffee shop in a neighborhood, it's not just real estate and product costs one has to consider, but also the payroll costs of labor in that market. When considering the overhead of running a coffee shop in a neighborhood, it's not just real estate and product costs one has to consider, but also the payroll costs of labor in that market.
Copyright © 2017 Ten11Fashion. All Rights Reserved.


mobilAP Documentation - Announcement Administration
Announcements provide a way for site administrators to communicate important messages to users. It is useful to post things that are not part of any particular session
As announcements can only be posted by site administrators, the following steps assume you are logged in using an administrative account.
Creating an announcement
- Click on the announcements menu
- Click Add Announcement
- Enter the title
- Enter the text. No formatting is permitted. Paragraphs should be separated by a blank line
- Click save to create the announcement
Editing an announcement
- Click on the announcements menu
- Click on an announcement
- Click the Edit button
- Enter the title
- Enter the text. No formatting is permitted. Paragraphs should be separated by a blank line
- Click save to create the announcement
Removing an announcement
- Click on the announcements menu
- Click on an announcement
- Click the Delete button
Announcements are shown in chronological order
Site Administration - Return to Administration