{"id":"https://openalex.org/W2806441765","doi":"https://doi.org/10.1145/3341701","title":"Efficient differentiable programming in a functional array-processing language","display_name":"Efficient differentiable programming in a functional array-processing language","publication_year":2019,"publication_date":"2019-07-26","ids":{"openalex":"https://openalex.org/W2806441765","doi":"https://doi.org/10.1145/3341701","mag":"2806441765"},"language":"en","primary_location":{"id":"doi:10.1145/3341701","doi":"https://doi.org/10.1145/3341701","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3341701","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3341701","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"listed_in":["ccf-c","cwts-core","dongbi-b","jufo-1","norway-1","poland-20","russia-white-list-1","vabb-shw"],"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"volume":null,"type":"article","is_traditional":true,"indexed_in":["arxiv","crossref","datacite"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3341701","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5025737201","display_name":"Amir Shaikhha","orcid":"https://orcid.org/0000-0002-9062-759X","observed_orcids":["https://orcid.org/0000-0002-9062-759X"]},"institutions":[{"id":"https://openalex.org/I40120149","display_name":"University of Oxford","ror":"https://ror.org/052gg0110","country_code":"GB","type":"education","lineage":["https://openalex.org/I40120149"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Amir Shaikhha","raw_affiliation_strings":["University of Oxford, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Oxford, UK","institution_ids":["https://openalex.org/I40120149"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5018851970","display_name":"Andrew W Fitzgibbon","orcid":"https://orcid.org/0000-0002-9839-660X","observed_orcids":["https://orcid.org/0000-0002-9839-660X"]},"institutions":[{"id":"https://openalex.org/I4210164937","display_name":"Microsoft Research (United Kingdom)","ror":"https://ror.org/05k87vq12","country_code":"GB","type":"company","lineage":["https://openalex.org/I1290206253","https://openalex.org/I4210164937"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Andrew Fitzgibbon","raw_affiliation_strings":["Microsoft Research, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Microsoft Research, UK","institution_ids":["https://openalex.org/I4210164937"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5029108294","display_name":"Dimitrios Vytiniotis","orcid":"https://orcid.org/0009-0007-2079-1996","observed_orcids":["https://orcid.org/0009-0007-2079-1996"]},"institutions":[{"id":"https://openalex.org/I4210090411","display_name":"Google DeepMind (United Kingdom)","ror":"https://ror.org/00971b260","country_code":"GB","type":"company","lineage":["https://openalex.org/I4210090411","https://openalex.org/I4210128969"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Dimitrios Vytiniotis","raw_affiliation_strings":["DeepMind, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"DeepMind, UK","institution_ids":["https://openalex.org/I4210090411"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5072362603","display_name":"Simon Jones","orcid":"https://orcid.org/0000-0002-6085-1435","observed_orcids":["https://orcid.org/0000-0002-6085-1435","https://orcid.org/0000-0003-4111-0591"]},"institutions":[{"id":"https://openalex.org/I4210164937","display_name":"Microsoft Research (United Kingdom)","ror":"https://ror.org/05k87vq12","country_code":"GB","type":"company","lineage":["https://openalex.org/I1290206253","https://openalex.org/I4210164937"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Simon Peyton Jones","raw_affiliation_strings":["Microsoft Research, UK"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Microsoft Research, UK","institution_ids":["https://openalex.org/I4210164937"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":9.2668,"has_fulltext":true,"cited_by_count":57,"citation_normalized_percentile":{"value":0.9796875,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":88,"max":99},"biblio":{"volume":"3","issue":"ICFP","first_page":"1","last_page":"30"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9707000255584717,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9707000255584717,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.010700000450015068,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11697","display_name":"Numerical Methods and Algorithms","score":0.0024999999441206455,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/automatic-differentiation","display_name":"automatic differentiation","score":0.8989999890327454},{"id":"https://openalex.org/keywords/differentiable-programming","display_name":"differentiable programming","score":0.8849999904632568},{"id":"https://openalex.org/keywords/functional-programming-languages","display_name":"functional programming languages","score":0.8050000071525574},{"id":"https://openalex.org/keywords/forward-mode-differentiation","display_name":"forward-mode differentiation","score":0.7850000262260437},{"id":"https://openalex.org/keywords/source-to-source-translation","display_name":"source-to-source translation","score":0.640999972820282},{"id":"https://openalex.org/keywords/loop-transformation","display_name":"loop transformation","score":0.7940000295639038},{"id":"https://openalex.org/keywords/gradient-computation","display_name":"gradient computation","score":0.7070000171661377},{"id":"https://openalex.org/keywords/jacobian-computation","display_name":"Jacobian computation","score":0.9269999861717224},{"id":"https://openalex.org/keywords/gauss-newton-optimization","display_name":"Gauss-Newton optimization","score":0.7129999995231628},{"id":"https://openalex.org/keywords/levenberg-marquardt-algorithm","display_name":"Levenberg-Marquardt algorithm","score":0.9549999833106995}],"concepts":[{"id":"https://openalex.org/C133512626","wikidata":"https://www.wikidata.org/wiki/Q787371","display_name":"Automatic differentiation","level":3,"score":0.8908716440200806},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.777717113494873},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6486189365386963},{"id":"https://openalex.org/C202615002","wikidata":"https://www.wikidata.org/wiki/Q783507","display_name":"Differentiable function","level":2,"score":0.6422712206840515},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.5334159731864929},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5314074158668518},{"id":"https://openalex.org/C2776401178","wikidata":"https://www.wikidata.org/wiki/Q12050496","display_name":"Feature (linguistics)","level":2,"score":0.5302944779396057},{"id":"https://openalex.org/C48103436","wikidata":"https://www.wikidata.org/wiki/Q599031","display_name":"State (computer science)","level":2,"score":0.4400065243244171},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.3729473352432251},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0893373191356659},{"id":"https://openalex.org/C45374587","wikidata":"https://www.wikidata.org/wiki/Q12525525","display_name":"Computation","level":2,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1145/3341701","doi":"https://doi.org/10.1145/3341701","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3341701","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3341701","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"listed_in":["ccf-c","cwts-core","dongbi-b","jufo-1","norway-1","poland-20","russia-white-list-1","vabb-shw"],"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:1806.02136","doi":null,"is_oa":true,"landing_page_url":"http://arxiv.org/abs/1806.02136","pdf_url":"https://arxiv.org/pdf/1806.02136","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},{"id":"mag:2806441765","doi":null,"is_oa":true,"landing_page_url":"https://arxiv.org/pdf/1806.02136","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"arXiv (Cornell University)","raw_type":null},{"id":"doi:10.48550/arxiv.1806.02136","doi":"https://doi.org/10.48550/arxiv.1806.02136","is_oa":true,"landing_page_url":"https://doi.org/10.48550/arxiv.1806.02136","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"Preprint"}],"best_oa_location":{"id":"doi:10.1145/3341701","doi":"https://doi.org/10.1145/3341701","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3341701","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3341701","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"listed_in":["ccf-c","cwts-core","dongbi-b","jufo-1","norway-1","poland-20","russia-white-list-1","vabb-shw"],"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320320915","display_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","ror":"https://ror.org/02s376052"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2806441765.pdf","grobid_xml":"https://content.openalex.org/works/W2806441765.grobid-xml"},"referenced_works_count":78,"referenced_works":["https://openalex.org/W1914234","https://openalex.org/W24803201","https://openalex.org/W84930537","https://openalex.org/W145691285","https://openalex.org/W200590909","https://openalex.org/W1564094940","https://openalex.org/W1641025018","https://openalex.org/W1732358472","https://openalex.org/W1783840476","https://openalex.org/W1853291804","https://openalex.org/W1964298340","https://openalex.org/W1965256357","https://openalex.org/W1966981171","https://openalex.org/W1979811002","https://openalex.org/W1997978901","https://openalex.org/W2002871272","https://openalex.org/W2008057734","https://openalex.org/W2008070495","https://openalex.org/W2017288758","https://openalex.org/W2017351599","https://openalex.org/W2020580827","https://openalex.org/W2026049208","https://openalex.org/W2031070741","https://openalex.org/W2041179002","https://openalex.org/W2044211710","https://openalex.org/W2055312318","https://openalex.org/W2071746250","https://openalex.org/W2073904768","https://openalex.org/W2081124914","https://openalex.org/W2084689793","https://openalex.org/W2087070363","https://openalex.org/W2088217310","https://openalex.org/W2094455839","https://openalex.org/W2101565274","https://openalex.org/W2108464053","https://openalex.org/W2112615547","https://openalex.org/W2124313187","https://openalex.org/W2125771191","https://openalex.org/W2136952590","https://openalex.org/W2144115737","https://openalex.org/W2146534684","https://openalex.org/W2151575553","https://openalex.org/W2152175008","https://openalex.org/W2153622543","https://openalex.org/W2154697693","https://openalex.org/W2156468295","https://openalex.org/W2159227002","https://openalex.org/W2162569557","https://openalex.org/W2167694888","https://openalex.org/W2208923056","https://openalex.org/W2240938131","https://openalex.org/W2256578114","https://openalex.org/W2278622356","https://openalex.org/W2291372353","https://openalex.org/W2293168108","https://openalex.org/W2295743822","https://openalex.org/W2402144811","https://openalex.org/W2482888308","https://openalex.org/W2562640456","https://openalex.org/W2644985445","https://openalex.org/W2751583584","https://openalex.org/W2751836142","https://openalex.org/W2754883653","https://openalex.org/W2769962266","https://openalex.org/W2798341898","https://openalex.org/W2899771611","https://openalex.org/W2903224116","https://openalex.org/W2914196042","https://openalex.org/W2962773216","https://openalex.org/W2962813113","https://openalex.org/W2971477052","https://openalex.org/W2996811965","https://openalex.org/W2999031440","https://openalex.org/W3137394766","https://openalex.org/W4233720472","https://openalex.org/W4242080388","https://openalex.org/W4252567017","https://openalex.org/W4293529051"],"related_works":["https://openalex.org/W4312091324","https://openalex.org/W7204976654","https://openalex.org/W7071128174","https://openalex.org/W2578556340","https://openalex.org/W4312089598","https://openalex.org/W6986961294","https://openalex.org/W4383473936","https://openalex.org/W6996284656","https://openalex.org/W7098107758","https://openalex.org/W3081404351"],"abstract_inverted_index":{"We":[0],"present":[1],"a":[2,10],"system":[3,21],"for":[4,55],"the":[5,51],"automatic":[6],"differentiation":[7],"(AD)":[8],"of":[9],"higher-order":[11],"functional":[12,17],"array-processing":[13],"language.":[14],"The":[15],"core":[16],"language":[18],"underlying":[19],"this":[20],"simultaneously":[22],"supports":[23],"both":[24],"source-to-source":[25],"forward-mode":[26,40],"AD":[27,41],"and":[28,49,61],"global":[29],"optimisations":[30],"such":[31,58],"as":[32,44,46,59],"loop":[33],"transformations.":[34],"In":[35],"combination,":[36],"gradient":[37],"computation":[38],"with":[39],"can":[42,63],"be":[43,64],"efficient":[45],"reverse":[47],"mode,":[48],"that":[50],"Jacobian":[52],"matrices":[53],"required":[54],"numerical":[56],"algorithms":[57],"Gauss-Newton":[60],"Levenberg-Marquardt":[62],"efficiently":[65],"computed.":[66]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":5},{"year":2024,"cited_by_count":8},{"year":2023,"cited_by_count":12},{"year":2022,"cited_by_count":8},{"year":2021,"cited_by_count":7},{"year":2020,"cited_by_count":7},{"year":2019,"cited_by_count":8},{"year":2018,"cited_by_count":1}],"updated_date":"2026-11-07T11:25:07.637180","created_date":"2018-06-13T00:00:00"}
